首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅更改函数中的计算

仅更改函数中的计算
EN

Stack Overflow用户
提问于 2013-10-29 08:09:43
回答 3查看 47关注 0票数 0

是否可以在函数中将函数指定为变量。

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

也就是说,它将被定义:def calculate(function)

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

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

我只是想知道是否可以这样做,这样会大大缩短我的脚本长度。

编辑

对不起,我应该说,我想要的是卑鄙和性病的预定义在numpy。getattr()在徐的回答中起作用了

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-29 08:14:08

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

代码语言:javascript
复制
def calculate(function):
    func = getattr(np, function)
    func(...)   # do what you want

calculate("mean") # calculate the average number 
calculate("std")  # calculate the standard deviation
票数 3
EN

Stack Overflow用户

发布于 2013-10-29 08:15:20

是的这是可能的。

示例:

代码语言:javascript
复制
def addIt(x):
    return x+x

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


test(addIt)

输出:

代码语言:javascript
复制
0
2
4
6
8
票数 1
EN

Stack Overflow用户

发布于 2013-10-29 08:13:54

代码语言:javascript
复制
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) 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19652818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档