eval函数记录

今天有个小程序想要在函数名列表中调用相应的函数处理,却怎么运行不了。初始代码如下:

#coding:utf8
def h1():
    print '函数1'
def h2():
    print '函数2'
if __name__ == '__main__':
    list1 = ['h1','h2']
    for name in list1:
        name()

其实这程序看起来就有点不对劲,最后查了查应该把最后的name上加上eval()函数

for name in list1:
    eval(name)()

这样才正常调用了函数。总结一下:

eval(str [,globals [,locals ]])函数将字符串str当成有效Python表达式来求值,并返回计算结果。

如 eval('1+2') 返回 3

这样就好理解了。

  

posted @ 2014-08-13 15:06  hi_net  阅读(131)  评论(0)    收藏  举报