Python 裝飾器(Decorator),它能夠讓你在不改變原始函式的情況下,增加額外的功能。本文將介紹 Python 裝飾器的基本概念、實現方式,並提供實際應用範例讓你更好了解Python 裝飾器。
裝飾器(Decorator)是 Python 中一種非常有用的設計模式,它能夠讓我們以一種簡潔的方式擴展函式的行為。簡單來說,裝飾器就是一個函式,它可以接受一個函式作為參數並返回一個新的函式。
以下是一個簡單的裝飾器示例:
def my_decorator(func):
def wrapper():
print("1!!!")
func()
print("2!!!")
return wrapper
@my_decorator
def greet():
print("3插隊!!!")
greet()
在這個例子中,my_decorator
是一個裝飾器,它增加了在原有 greet
函式前後進行的操作。
帶參數的裝飾器可以在調用時提供更多靈活性。例如:
def repeat(num_times):
def decorator_repeat(func):
def wrapper(*args, **kwargs):
for _ in range(num_times):
result = func(*args, **kwargs)
return result
return wrapper
return decorator_repeat
@repeat(num_times=3)
def greet(name):
print(f"Hello, {name}")
greet("World")
在這個例子中,repeat
裝飾器接受一個參數 num_times
,它控制了 greet
函式的執行次數。
裝飾器在實際應用中非常有用,例如在 Web 框架中用於路由處理、在日誌記錄中自動記錄信息,或者在性能測試中計算函式的執行時間。
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"{func.__name__} 執行時間:{end_time - start_time}秒")
return result
return wrapper
@timer
def long_running_function():
print('開始執行......')
time.sleep(2)
long_running_function()
在這個例子中,timer
裝飾器用於計算函式的執行時間。
😊 感謝你的耐心閱讀,若是你喜歡這篇內容,可以透過以下方式表達你的喜歡 😊