我有一个简单的函数,定义如下:与函数参数的Python装饰
def simple_function(x):
""" x is an input numpy array"""
return x + 0.1
我想通过应用一些边界条件,以它来修改这个功能。这些边界条件是x的本身功能:
def upper_bound(x):
return x**2
def lower_bound(x):
return np.zeros(len(x))
特别是,如果simple_function(x)
超过upper_bound(x)
值,或低于lower_bound(x)
,我想的simple_function(x)
装饰的版本返回值upper_bound(x)
,同样为LOWER_BOUND 。我如何使用python中的@decorator语法来完成这种行为?
伟大的答案!这很好,是单变量参数的优秀语法模板,但它不适用于numpy数组。知道如何为此目的调整语法? – aph 2014-10-30 05:31:00
NumPy数组是一个参数。您是否看到任何*特定*问题? – 2014-10-30 05:36:20
我怀疑问题不在于参数,而是返回值。你不能像比较标量一样比较numpy数组(你可能需要使用'all',或者按照元素的方式来替换越界值,而不是只返回'l'或'u ')。 – Blckknght 2014-10-30 05:40:17