在Python中,裝飾器是一種特殊類型的函數(shù),它可以用來修改其他函數(shù)的行為。裝飾器通過接收一個(gè)函數(shù)作為參數(shù),然后返回一個(gè)新的函數(shù),這個(gè)新函數(shù)通常會(huì)包含原始函數(shù)的功能,并添加一些額外的操作。
要實(shí)現(xiàn)功能擴(kuò)展,你可以使用以下步驟:
@decorator_name
)來應(yīng)用裝飾器。下面是一個(gè)簡(jiǎn)單的示例,展示了如何使用裝飾器來擴(kuò)展一個(gè)函數(shù)的功能:
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()
在這個(gè)示例中,我們定義了一個(gè)名為my_decorator
的裝飾器,它接收一個(gè)函數(shù)func
作為參數(shù)。在裝飾器內(nèi)部,我們定義了一個(gè)名為wrapper
的內(nèi)部函數(shù),它首先打印一條消息,然后調(diào)用原始函數(shù)func
,最后再打印一條消息。最后,我們返回wrapper
函數(shù)。
要在say_hello
函數(shù)上應(yīng)用這個(gè)裝飾器,我們?cè)诤瘮?shù)定義之前使用@my_decorator
語法。當(dāng)我們調(diào)用say_hello
時(shí),實(shí)際上是在調(diào)用wrapper
函數(shù),因此會(huì)看到所有三條消息都被打印出來。