嵌套函数调用的快捷方式
我现在在做一个项目,里面经常需要做一些事情,比如:
map(lambda r: f(g(h(r))), mylist)
目前我创建了这个类:
class NestedCalls(object):
def __init__ (self, *args):
self.__fn = list(args)
self.__fn.reverse()
def __call__ (self, *args, **kargs):
v = self.__fn[0] (*args, **kargs)
for f in self.__fn[1:]:
v = f (v)
return v
然后我简单地这样做:
map(NetstedCalls(f, g, h), mylist)
这样做效果还不错,但我在想有没有什么内置的工具可以做到同样的事情?我查阅了Python的文档,但不太知道该怎么称呼这样的工具或类。
1 个回答
0
这里有一种不同的功能性方法来处理事情。实际上,我写了一些简单的函数来说明这个方法:
def plus1(a):
return a+1
def minus3(a):
return a-3
def or5(a):
return a*5
# this one could be skipped
def apply(a,b):
return b(a)
reduce(apply,[plus1,or5,minus3],10)
# without apply
reduce(lambda a,b: b(a),[plus1,or5,minus3],10)
这就是你想要的东西吗?