Hov*_*tar 9 python functional-programming list
所以今天在计算机科学中我问过将函数用作变量.例如,我可以创建一个函数,例如returnMe(i)并创建一个用于调用它的数组.喜欢h = [help,returnMe],然后我可以说h1,它会打电话returnMe("Bob").对不起,我对此感到有些兴奋.我的问题是有没有一种调用方式,h.append(def function)并定义一个只存在于数组中的函数?
编辑:
这是我用这个写的一些代码!所以我刚刚用这个解决方案完成了一个很棒的FizzBuzz,非常感谢你!这是代码的例子:
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)
不是真正的Python。正如 mgilson 所示,您可以使用简单的函数来完成此操作,但它们只能包含表达式,而不能包含语句,因此非常有限(例如,您不能分配给变量)。
这当然在其他语言中得到支持:例如,在 Javascript 中,创建大量匿名函数并将它们传递是非常惯用的做法。
| 归档时间: |
|
| 查看次数: |
19544 次 |
| 最近记录: |