知識點:
- 裝飾器的思想:進一步復用
- 函數的裝飾器寫法
- 注意內部函數的返回值
裝飾器教程
作業:
編寫一個裝飾器 logger,在函數執行前后打印日志信息(如函數名、參數、返回值)
def logger(func):def wrapper(*args, **kwargs): # args 是元組,kwargs 是字典print(f"開始執行函數 {func.__name__},參數: {args}, {kwargs}")result = func(*args, **kwargs)print(f"函數 {func.__name__} 執行完畢,返回值: {result}")return resultreturn wrapper@logger
def multiply(a, b):return a * b multiply(2, 3) # 調用 multiply 函數,觀察日志輸出
?func.__name__? :按照pep8的約定,在一個變量前后都加上兩個下劃線代表著這是一個Python內置的變量,是自動創建的。作用返回 func 的名稱更詳細的可以問AI