(相關(guān)資料圖)
裝飾器是 Python 中非常有用的語法特性,可以用于包裝或者修改函數(shù)的行為。有時(shí)候我們希望給裝飾器添加參數(shù),以便于在裝飾器內(nèi)部使用,那么這時(shí)候就需要使用帶參數(shù)的裝飾器。常用的兩種帶參數(shù)裝飾器的寫法如下:
在裝飾器函數(shù)外層再套一個(gè)函數(shù),用來接收和處理裝飾器的參數(shù)。
def decorator_with_args(arg1, arg2, arg3): def wrapper(func): def inner_wrapper(*args, **kwargs): print("Decorator arguments:", arg1, arg2, arg3) return func(*args, **kwargs) return inner_wrapper return wrapper @decorator_with_args("Hello", "World", 42) def my_function(arg1, arg2): print("Function arguments:", arg1, arg2) my_function("Hi", "Tom")
使用一個(gè)裝飾器函數(shù)來實(shí)現(xiàn)裝飾器的參數(shù)傳遞,然后再返回一個(gè)函數(shù)來完成真正的裝飾。
def decorator_with_args(arg1, arg2, arg3): def real_decorator(func): def wrapper(*args, **kwargs): print("Decorator arguments:", arg1, arg2, arg3) return func(*args, **kwargs) return wrapper return real_decorator @decorator_with_args("Hello", "World", 42) def my_function(arg1, arg2): print("Function arguments:", arg1, arg2) my_function("Hi", "Tom")
以上兩種寫法都可以實(shí)現(xiàn)帶參數(shù)的裝飾器。第一種寫法中,外層套一個(gè)函數(shù)來處理裝飾器參數(shù),然后再返回內(nèi)層裝飾器函數(shù)來實(shí)現(xiàn)真正的裝飾器;第二種寫法中,使用一個(gè)裝飾器函數(shù)來接收和處理參數(shù),然后再返回一個(gè)內(nèi)部函數(shù)來完成真正的裝飾。
凡本網(wǎng)注明“XXX(非汪清新聞網(wǎng))提供”的作品,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和其真實(shí)性負(fù)責(zé)。
【盤面】周三滬深兩市雙雙低開,不少權(quán)重板塊還算平穩(wěn),但未阻大盤低開
2023-08-09 16:19
支付寶賬戶激活步驟:1、打開“支付寶”,點(diǎn)擊“注冊(cè)賬號(hào)”。2、輸入要
2023-08-09 15:40
報(bào)道介紹,考慮到“卡努”貫穿朝鮮半島可能帶來較大損失,以及參加第25
2023-08-09 15:11
愛美客(300896)08月09日在投資者關(guān)系平臺(tái)上答復(fù)了投資者關(guān)心的問題。
2023-08-09 14:30
可以買貴的,不能買貴了
2023-08-09 14:09
2023年08月09日訊:點(diǎn)擊查看>>>2203四川德陽市教育局市直屬學(xué)??己苏?/p>
2023-08-09 13:21
中郵證券有限責(zé)任公司王磊,賈佳宇近期對(duì)東方電纜進(jìn)行研究并發(fā)布了研究
2023-08-09 12:30
比賽結(jié)束后,不少網(wǎng)友都吐槽AD差距,主要是第四局Uzi前期拿到了3個(gè)人頭
2023-08-09 11:40
EA已確認(rèn)將于今年晚些時(shí)候關(guān)閉《孤島危機(jī)3》《但丁地獄》《死亡空間2》
2023-08-09 11:22
今年上海書展將于8月16日至22日舉辦。
2023-08-09 11:02