【发布时间】:2019-02-02 20:10:01
【问题描述】:
def f(a,b):
lista = []
listb = []
lista.append(a**2)
listb.append(b**2)
return lista, listb
但我也想返回一个由两个列表组成的数组。
很喜欢:
def f2(a,b):
lista = []
listb = []
lista.append(a**2)
listb.append(b**2)
tr = np.array([np.array(lista), np.array(listb)]).T
return tr
两个函数共享相同的参数,但我不想将列表和数组都堆积起来作为返回值。
我能否以某种方式使用装饰器 no f 来定义另一个只接受它的参数并执行另一个操作的函数?
【问题讨论】:
-
f2调用f而不是使用相同的代码怎么样? -
但是我必须为
f2提供与f相同的参数。而且我可能已经写了f,并希望保持不变。我只想添加一些执行f2. 的最后一行的内容 -
如果你想有一些东西作为“代码”,你可以使用反引号(`)像`f` =>
f -
请注意,使用装饰器会“丢失”原始函数,所以为什么不使用第二个函数
toArray将任何函数的结果转换为数组?
标签: python function python-decorators