裝飾器
編寫一個裝飾器 logger,在函數執行前后打印日志信息(如函數名、參數、返回值)
@logger
def multiply(a, b):return a * bmultiply(2, 3)
# 輸出:
# 開始執行函數 multiply,參數: (2, 3), {}
# 函數 multiply 執行完畢,返回值: 6def 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 函數,觀察日志輸出
@浙大疏錦行