0

是否可以有一个函数,您可以在其中指定一个函数作为变量。

例如,我有两个函数遵循完全相同的过程,除了一个计算平均值使用np.mean,另一个计算标准偏差,只有np.std不同之处。

即它将被定义为: def calculate(function)

您可以在脚本中调用一个,例如:

calculate(mean) 和另一个 calculate(std)

我只是想知道是否可以做这样的事情,它会大大减少我的脚本长度。

编辑

抱歉,我应该说我希望 mean 和 std 是 numpy.xml 中预定义的。getattr()在徐的回答中

4

3 回答 3

3

用于getattr根据方法名获取方法对象:

def calculate(function):
    func = getattr(np, function)
    func(...)   # do what you want

calculate("mean") # calculate the average number 
calculate("std")  # calculate the standard deviation
于 2013-10-29T08:14:08.960 回答
1

是的,这是可能的。

例子:

def addIt(x):
    return x+x

def test(fn):
    for x in xrange(5):
        print fn(x)


test(addIt)

输出:

0
2
4
6
8
于 2013-10-29T08:15:20.727 回答
0
def f1(t): return t * 2 
def f2(t): return t * t 

def comb(t,f): return f(t)

print comb(10, f1) 
print comb(10, f2) 
于 2013-10-29T08:13:54.673 回答