如何将函数名称作为变量传递和调用

时间:2016-03-18 12:54:15

标签: python

有没有办法将函数名称作为变量传递并将其称为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

2 个答案:

答案 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是一个类型,不是函数,但是可以调用,所以它可以工作。)