Python 如何将函数名作为变量传递和调用
有没有一种方法可以将函数名作为变量传递,并将其作为函数调用。例如,通过将Python 如何将函数名作为变量传递和调用,python,Python,有没有一种方法可以将函数名作为变量传递,并将其作为函数调用。例如,通过将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 是的,您可以为变量指定函数名,然后将其作为函数调用: l = (1,2)
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
是的,您可以为变量指定函数名,然后将其作为函数调用:
l = (1,2)
x = list
answer = x(l)
print(answer)
输出
[1, 2]
如果变量是表示名称的字符串,则可以使用globals
:
x_name = 'list'
x = globals()[x_name]
y = x((1,2))
在后一种情况下,您也可以使用eval
,但不推荐使用,因为eval是邪恶的
(请注意,
list
是一种类型,不是一个函数,但是可以调用,所以它是有效的。)我不明白你对b=%s(l)%(x)
的意思。但是你可以做x(l)
b=x(l)
是最简单的方法。调用它不需要函数名;您只需要函数本身。既然你说的是x=list
,x
现在指的是这个函数,所以你可以像那样使用x(l)
。