Python中怎么用字符串来命名一个函数?
3个回答
展开全部
有2个标准库函数可以完成你说的要求,建议用eval()
eval() 和exec()
区别是eval()有返回值
def test1():
print "Test1 Excuted!"
return True
ret = eval ("test1()")
print ret
结果如下
>>>
Test1 Excuted!
True
而exec()只执行,并无返回值。
def test2():
print "Test2 Excuted!"
return True
exec("test2()")
结果如下
>>>
Test2 Excuted!
>>>
如果要将exec()赋值,会有以下语法错误!
ret = exec("test2()")
展开全部
是说,知道一个函数的函数名,但是没有这个函数的引用么?
可以考虑下面的做法。
定义一个函数
def abc():
print "123"
然后定义一个字符串,内容为abc
a="abc"
然后尝试调用a对应的函数
vars()[a]()
vars()取出当前可用的变量,然后用a索引它对应的函数,最后加上()执行。
可以考虑下面的做法。
定义一个函数
def abc():
print "123"
然后定义一个字符串,内容为abc
a="abc"
然后尝试调用a对应的函数
vars()[a]()
vars()取出当前可用的变量,然后用a索引它对应的函数,最后加上()执行。
更多追问追答
追问
我也是一开始就想到这个,但是要求是可以根据输入动态的添加函数。。。
我一开始也是想到这个,但是要求是可以根据输入,动态的添加函数。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以看一下python的反射机制,应该可以实现你这个要求
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询