在Python中,裝飾器是一種函數,它接受一個函數作為參數,并返回一個新的函數。通過使用裝飾器,可以在不修改原始函數代碼的情況下添加額外的功能或邏輯。
下面是一個簡單的示例,演示如何使用裝飾器來裝飾函數:
# 定義一個裝飾器函數
def my_decorator(func):
def wrapper():
print("Before calling the function")
func()
print("After calling the function")
return wrapper
# 使用裝飾器來裝飾函數
@my_decorator
def say_hello():
print("Hello!")
# 調用裝飾后的函數
say_hello()
在上面的示例中,my_decorator
是一個裝飾器函數,它接受一個函數作為參數,并返回一個新的函數wrapper
。在wrapper
函數中,我們可以在調用原始函數之前和之后添加額外的邏輯。通過在say_hello
函數上方添加@my_decorator
語法,我們將say_hello
函數傳遞給my_decorator
裝飾器函數,并將返回的新函數賦值給say_hello
,這樣say_hello
函數就被裝飾了。
當我們調用say_hello
函數時,實際上會調用裝飾后的wrapper
函數,從而在打印"Hello!“之前和之后分別打印"Before calling the function"和"After calling the function”。這樣,我們就成功地使用裝飾器來裝飾函數。