2024-04-27 04:51:22 发布
网友
如何创建这样的内容:
def test(a) return a def invoker(func): func() #here I need call the function twice and sum result (test function) invoker(test(10), test(15))
我认为任意参数列表就是您要寻找的:http://docs.python.org/dev/tutorial/controlflow.html#arbitrary-argument-lists
def test(a): return a def invoker(*args): print sum(args) # Prints 25 print args # Prints (10, 15) invoker(test(10), test(15))
在Python3中:
from functools import reduce from operator import add def add_many(func, *args): return reduce(add, map(func, args))
简化(贷记mbatchkarov):
def add_many(func, *args): return sum(map(func, args))
func是带有一个参数的回调,args是该回调使用的值的列表。根据func映射内置转换参数。reduce在类似Lisp的语言中充当前缀运算符(+1234)=1+2+3+4,与reduce相同。add只是回调形式中的+运算符。你知道吗
更通用的版本(Python3):
from functools import reduce def invoker(func, op, *args): return reduce(op, map(func, args))
这样称呼(例如):
from operator import add invoker(lambda x:x, add, 10, 15) # returns 25
我认为任意参数列表就是您要寻找的:http://docs.python.org/dev/tutorial/controlflow.html#arbitrary-argument-lists
在Python3中:
简化(贷记mbatchkarov):
func是带有一个参数的回调,args是该回调使用的值的列表。根据func映射内置转换参数。reduce在类似Lisp的语言中充当前缀运算符(+1234)=1+2+3+4,与reduce相同。add只是回调形式中的+运算符。你知道吗
更通用的版本(Python3):
这样称呼(例如):
相关问题 更多 >
编程相关推荐