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