裝飾器是一種改變、增強或以任何方式修改函數運作方式的方法。
使用裝飾器可以在函數定義之前使用@
符號以及裝飾器名稱來定義裝飾器。
例如:
@logtime
def hello():
print('hello!')
這個 hello
函數有一個被指定為 logtime
的裝飾器。
每當我們呼叫 hello()
時,裝飾器會被呼叫。
裝飾器是一個接受函數作為參數的函數,它將函數包裝在一個執行特定任務的內部函數中,然後返回該內部函數。換句話說:
def logtime(func):
def wrapper():
# 在執行前做一些事情
val = func()
# 在執行後做一些事情
return val
return wrapper