在Python中,裝飾器是一種特殊類型的函數,它可以用來修改其他函數的行為。裝飾器通過接收一個函數作為參數,然后返回一個新的函數,這個新函數通常會包含原始函數的功能,并添加一些額外的操作。
要實現功能擴展,你可以使用以下步驟:
@decorator_name
)來應用裝飾器。下面是一個簡單的示例,展示了如何使用裝飾器來擴展一個函數的功能:
def my_decorator(func):
def wrapper():
print("Something is happening before the function is called.")
func()
print("Something is happening after the function is called.")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
在這個示例中,我們定義了一個名為my_decorator
的裝飾器,它接收一個函數func
作為參數。在裝飾器內部,我們定義了一個名為wrapper
的內部函數,它首先打印一條消息,然后調用原始函數func
,最后再打印一條消息。最后,我們返回wrapper
函數。
要在say_hello
函數上應用這個裝飾器,我們在函數定義之前使用@my_decorator
語法。當我們調用say_hello
時,實際上是在調用wrapper
函數,因此會看到所有三條消息都被打印出來。