python eval


緣起

小例子

def test_1(val):
    print "val", val, type(val)

def test_2(val):
    print "val", val, type(2)

if __name__ == "__main__":
    for i in [1, 2]:
        eval("test_" + str(i))(i)
        

執行結果

val 1 <type 'int'>
val 2 <type 'int'>

分析:利用eval函數,把字符串“test”和“1”組合成函數名test_1(test_2同樣),挺神奇的,第一次見到這么用。

eval函數

eval()將字符串str當成有效的表達式來求值並返回計算結果

例子1

>>> x = 1
>>> y = 2
>>> print eval("x+y")
3

例2

>>> a = "{'a':1, 'b':[1, 2, 3]}"
"{'a':1, 'b':[1, 2, 3]}"
>>> eval(a)
{'a': 1, 'b': [1, 2, 3]}

>>> print type(eval(a))
<type 'dict'>

危險性

備份下:http://blog.donews.com/soarnil/archive/2007/02/28/1134203.aspx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM