我想将不同的计算方法传递给函数,例如:
def example_func(method='mean'):
result = np.+method([1,2,3,4])
最简单,最富有成效的方法是什么(除了字典......)
答案 0 :(得分:5)
您可以传递函数对象本身,然后在函数中调用它
import numpy as np
def do_func(f, arg):
return f(arg)
>>> do_func(np.mean, [1,2,3,4])
2.5
您可以看到上面示例中的参数(f
)本身就是一个函数,因此您可以在函数内部调用它。
答案 1 :(得分:2)
如上所述,你可以做到
getattr(np, method)([1,2,3,4])
或
from operator import methodcaller
f = methodcaller(method, [1,2,3,4])
f(np)
或者直接将函数传递给另一个函数。函数是一流的对象。