Python裝飾器是一種在不修改原始函數代碼的情況下,為函數增加新功能的方法。裝飾器通過接收一個函數作為參數,然后返回一個新的函數,這個新函數通常會包含原始函數的功能以及額外的操作。這樣可以在不改變原始代碼的基礎上,為多個函數添加相同的功能,從而提高代碼的復用性。
以下是一個簡單的裝飾器示例:
def my_decorator(func):
def wrapper():
print("Before the function is called.")
func()
print("After the function is called.")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
在這個例子中,my_decorator
是一個裝飾器,它接收一個函數 func
作為參數。wrapper
函數是在原始函數之前和之后添加額外操作的包裝函數。通過 @my_decorator
語法,我們將 say_hello
函數與 my_decorator
裝飾器關聯起來。當我們調用 say_hello()
時,實際上是在調用 wrapper
函數,從而實現了在不修改原始代碼的情況下為函數增加新功能的目的。
裝飾器可以應用于任何可調用對象,如函數、類方法或靜態方法等。這使得裝飾器在提高代碼復用性方面具有很大的靈活性。