簡體   English   中英

Python-我可以為此使用裝飾器嗎?

[英]Python - can I use a decorator for this?

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來定義另一個僅接受其參數並執行其他操作的函數嗎?

是的,您可以使用以下裝飾器:

def tr(func):
    def wrapper(a, b):
        lista, listb = func(a, b)
        return np.array([np.array(lista), np.array(listb)]).T
    return wrapper

這樣f2可以簡單地定義為:

@tr
def f2(a, b):
    return f(a, b)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM