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)