列表中的Python函数

Hov*_*tar 9 python functional-programming list

所以今天在计算机科学中我问过将函数用作变量.例如,我可以创建一个函数,例如returnMe(i)并创建一个用于调用它的数组.喜欢h = [help,returnMe],然后我可以说h1,它会打电话returnMe("Bob").对不起,我对此感到有些兴奋.我的问题是有没有一种调用方式,h.append(def function)并定义一个只存在于数组中的函数?

编辑:

这是我用这个写的一些代码!所以我刚刚用这个解决方案完成了一个很棒的FizzBu​​zz,非常感谢你!这是代码的例子:

funct = []
s = ""

def newFunct(str, num):
    return (lambda x: str if(x%num==0) else "")

funct.append(newFunct("Fizz",3))
funct.append(newFunct("Buzz",5))

for x in range(1,101):
    for oper in funct:
        s += oper(x)
    s += ":"+str(x)+"\n"

print s
Run Code Online (Sandbox Code Playgroud)

mgi*_*son 14

您可以使用lambda关键字创建匿名函数.

def func(x,keyword='bar'):
    return (x,keyword)
Run Code Online (Sandbox Code Playgroud)

大致相当于:

func = lambda x,keyword='bar':(x,keyword)
Run Code Online (Sandbox Code Playgroud)

因此,如果要创建包含函数的列表:

my_list = [lambda x:x**2,lambda x:x**3]
print my_list[0](2)  #4
print my_list[1](2)  #8
Run Code Online (Sandbox Code Playgroud)


Dan*_*man 5

不是真正的Python。正如 mgilson 所示,您可以使用简单的函数来完成此操作,但它们只能包含表达式,而不能包含语句,因此非常有限(例如,您不能分配给变量)。

这当然在其他语言中得到支持:例如,在 Javascript 中,创建大量匿名函数并将它们传递是非常惯用的做法。