小例子函數
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)
執行結果spa
val 1 <type 'int'> val 2 <type 'int'>
分析:利用eval函數,把字符串「test」和「1」組合成函數名test_1(test_2一樣),挺神奇的,第一次見到這麼用。code
eval()將字符串str當成有效的表達式來求值並返回計算結果blog
例子1字符串
>>> x = 1 >>> y = 2 >>> print eval("x+y") 3
例2class
>>> 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.aspxtest