普通函數
def f(): """ 這是一個用來測試裝飾器修復技術的函數 """ print("哈哈哈") if __name__ == '__main__': print("執行的函數名:", f.__name__) print("函數的注釋:", f.__doc__) # 打印結果 執行的函數名: f 函數的注釋: 這是一個用來測試裝飾器修復技術的函數
添加裝飾器
def wrapper(func): def inner(*args, **kwargs): print("在前面執行的代碼。。。。") func() print("在后面執行的代碼...") return inner @wrapper def f(): """ 這是一個用來測試裝飾器修復技術的函數 """ print("哈哈哈") if __name__ == '__main__': print("執行的函數名:", f.__name__) print("函數的注釋:", f.__doc__) # 打印結果 執行的函數名: inner 函數的注釋: None
添加裝飾器修復技術@wraps
from functools import wraps
def wrapper(func): @wraps(func) def inner(*args, **kwargs): print("在前面執行的代碼。。。。") func() print("在后面執行的代碼...") return inner @wrapper def f(): """ 這是一個用來測試裝飾器修復技術的函數 """ print("哈哈哈") if __name__ == '__main__': print("執行的函數名:", f.__name__) print("函數的注釋:", f.__doc__)
# 打印結果
執行的函數名: f
函數的注釋: 這是一個用來測試裝飾器修復技術的函數
