python中的eval() 函式異常強大,使用好eval()函式可以取得事半功倍的效果。簡單來說 ,eval()函式用來執行乙個字串表示式,並返回表示式的值。
1、簡單使用例項:
x = 1
print(eval('x+1'))
程式執行結果輸出為:
2
2、函式呼叫使用例項:
首先定義乙個functions函式其內容如下:
def funca():
print('funca')
def funcb():
print('funcb')
def funcc():
print('funcc')
再定義乙個呼叫函式
import functions as fc
fc.funcc()
print(eval('fc.funcb()'))
程式的執行結果是:
funcc
funcb
none
注:為什麼輸出結果中會出現乙個none,我也沒搞明白,有知道的大佬希望能幫助解決一下,謝謝啦!
3、同時也可以從配置檔案中讀入呼叫語句來執行函式,(仍然使用上面提到的functions函式)
configure.txt的內容如下所示:
functions.funca()
functions.funcb()
functions.funcc()
呼叫函式如下所示:
import functions
funcname =
def test():
with open('configure.txt', 'r') as fcn:
for line in fcn.readlines():
line = line.strip() #去掉結尾的『\n』
print(funcname)
eval(funcname[0])
eval(funcname[1])
test()
執行結果:
['functions.funca()', 'functions.funcb()', 'functions.funcc()']
funca
funcb
eval()函式還有很多用處,還有待發現,以後再補充。 shell 陣列 eval工具等小技巧
shell這種指令碼語言在某些環境中感覺跟高階語言相比,對一些高階資料結構支援很不夠,寫起來也極不方便,但是基本上你想要的,shell都能夠支援,只是不是那麼方便而已。一 shell陣列 array value1 value2 value3 array one two three 取值 刪除 uns...
python內建函式 eval函式
最近在學習python的過程中,遇到了eval 函式,所以便查資料進行了細緻了解,這位大哥的部落格介紹的非常明白,我看了之後才徹底理解,大家可以去看看。eval 函式用來執行乙個字串表示式,並返回表示式的值,通俗地講就是去掉引數最外層引號並執行語句。注意 eval的引數必須是字串,否則將會報錯。ev...
python內建函式eval
eval 官方文件裡面給出來的功能解釋是 將字串string物件轉化為有效的表示式參與求值運算返回計算結果 語法上 呼叫的是 eval expression,globals none,locals none 返回的是計算結果 expression是乙個參與計算的python表示式 globals是可...