将计算方法传递给函数的最简单方法

时间:2015-09-23 14:15:48

标签: python function

我想将不同的计算方法传递给函数,例如:

def example_func(method='mean'):
    result = np.+method([1,2,3,4])

最简单,最富有成效的方法是什么(除了字典......)

2 个答案:

答案 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)

或者直接将函数传递给另一个函数。函数是一流的对象。