永发信息网

Python中怎么用字符串来命名一个函数?

答案:2  悬赏:60  手机版
解决时间 2021-01-19 13:52
Python中怎么用字符串来命名一个函数?
最佳答案
有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索引它对应的函数,最后加上()执行。追问我也是一开始就想到这个,但是要求是可以根据输入动态的添加函数。。。我一开始也是想到这个,但是要求是可以根据输入,动态的添加函数。。。追答python有个exec函数,可以动态的执行文本串。
比如
a = "def abcd():\n\tprint \"234\"\n"
exec(a)追问呃。。这个函数貌似很厉害的样子0.0
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
1500左右的手机,什么手机配置比较好
防弹少年团i m fine百度云求你们啦
L型插头耳机和直插型有什么区别
像这样P图的要用什么软件?
做一栋三开间的房子基础有十二根柱子,柱子箍
收到恶意扣费短信
一只脚走一步做的功怎么计算?不是一抬一放,
苹果6s 打不出去电话,别人也打不进来,怎么
java 显示不是内部或外部命令,也不是可运行
电脑刚刚在修理店换个系统回来显示屏不显示了
请问赵忠原这个名字多少分
两个长方形的面积相等,这两个长方形长的比是
请问千又鱼钩怎么样,适合钓鲫鱼鲤鱼么
4.15km和415m谁大
听说昨晚QQ崩了,你们都中招了吗
推荐资讯
2.4×0.99-4.9×0.24怎么用简便方法
36槽4极交叉连式二路角接
从12到67这些数中个位数是哪些
富春硅谷麓园怎么样?好不好?值不值得买?
gucci钱包388679原价多少
油炸素鸡怎样炸的又大又松
单选题下列语句正确的是A.相等的角是对顶角B.
我想问一下,银行卡开头625362.卡尾1035是什
数学题求解!急 在线等!!!!!!
前方是湖后面是多座高层楼这样房子好吗
以阎肃事例为素材,敬业论述
蛋白线鼻子提升多久才能吸收
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?