Chinaunix
标题:
eval使用问题
[打印本页]
作者:
moatlzy
时间:
2008-12-19 19:27
标题:
eval使用问题
>>> def test(a,b):
... return a+b
...
>>> def test(a,b):
... return a+b
...
>>> funcname='test'
>>> argtuple=(1,2)
>>> eval(funcname)argtuple
Traceback ( File "<interactive input>", line 1
eval(funcname)argtuple
^
SyntaxError: invalid syntax
求教为什么会出错啊?
作者:
bluecrystal
时间:
2008-12-19 21:08
eval("test(1,2)")
作者:
3227049
时间:
2008-12-19 21:41
eval(funcname)(*argtuple)
globals()[funcname](*argtuple)
[
本帖最后由 3227049 于 2008-12-19 23:09 编辑
]
作者:
king6o60
时间:
2008-12-19 22:48
eval(funcname)(*argtuple)
3楼正解,
也可以这样
eval( funcname + str(argtuple) )
作者:
moatlzy
时间:
2008-12-20 00:49
谢谢各位,三楼正确,
eval( funcname + str(argtuple) )我试过可以,但如果参数中有句柄,对象之类时,好象就不行
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2