How to pass one function to another in python
我对Python比较陌生,我想知道是否可以将一个函数传递给另一个函数。我有一些功能,基本上是一样的,比如:
1 2 3 4 | if(#some condition): #do something else: #do something else |
我想做的是这样的事情:
1 2 3 4 5 6 7 8 9 10 | def generic_func(self, x, y): if #somecondition: #do function x else: #do function y def calls_generic_func(self, key, value): lambda x: self.list[-1].set(key,value) lambda y: self.d.set(key,value) self.generic_func(x,y) |
不幸的是,这似乎不起作用,因为当我调用
在下面的
1 | lambda x: self.list[-1].set(key,value) |
你需要的assign到lambda表达是可变和通行证。
1 2 3 | function1 = lambda x: self.list[-1].set(key,value) function2 = lambda y: self.d.set(key,value) self.generic_func(function1, function2) |
或者你可以通自己的表达:λ
1 2 | self.generic_func(lambda x: self.list[-1].set(key,value), lambda y: self.d.set(key,value)) |
如果你不带任何可能的函数中的参数,其中(x,y)。
1 2 | self.generic_func(lambda: self.list[-1].set(key,value), lambda: self.d.set(key,value)) |