有没有办法将函数名称作为变量传递并将其称为fucntion。例如,通过将list
作为变量传递将元组转换为列表:
l=(1,2)
x=list
b=%s(l)%(x) #list(l)
已编辑
很抱歉只给你一半的问题。用户输入这样的函数名称
l=(1,2)
f=raw_input("Enter the name:")
len(f(l))
TypeError: 'str' object is not callable
答案 0 :(得分:3)
是的,您可以为变量分配函数名称,然后将其作为函数调用:
l = (1,2)
x = list
answer = x(l)
print(answer)
<强>输出强>
[1, 2]
答案 1 :(得分:3)
如果您的变量是代表名称的字符串,则可以使用globals
进行查找:
x_name = 'list'
x = globals()[x_name]
y = x((1,2))
在后一种情况下,您也可以使用eval
,但不建议这样做,因为 eval是邪恶的。
(注意list
是一个类型,不是函数,但是可以调用,所以它可以工作。)