python帶參數(shù)裝飾器的兩種寫法示例代碼
裝飾器是 Python 中非常有用的語法特性,可以用于包裝或者修改函數(shù)的行為。有時候我們希望給裝飾器添加參數(shù),以便于在裝飾器內(nèi)部使用,那么這時候就需要使用帶參數(shù)的裝飾器。常用的兩種帶參數(shù)裝飾器的寫法如下:
1. 第一種裝飾器帶參數(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")2. 第二種裝飾器帶參數(shù)的寫法:
使用一個裝飾器函數(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ù)來完成真正的裝飾。
到此這篇關于python帶參數(shù)裝飾器的兩種寫法的文章就介紹到這了,更多相關python參數(shù)裝飾器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python 文件操作技巧(File operation) 實例代碼分析
python遍歷文件夾和文件 perl分割路徑和文件名2008-08-08
分布式訓練training-operator和pytorch-distributed?RANK變量不統(tǒng)一解決
這篇文章主要介紹了分布式訓練training-operator和pytorch-distributed?RANK變量不統(tǒng)一問題的解決方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04

