來簡單介紹一下 Decorator(裝飾器)
Python 程式常常會看到以 @ 開頭的程式,不過因為太多地方會用到這樣的語法, 因此即使想不去瞭解都不行, 以下就來認識一下所謂的裝飾器。
func = decorator(func)
@decorator
def func:
其中的 decorator必須是可叫用(callable)的物件, 並且符合必須傳入單一引數及傳回可叫用物件的規範, 而裝飾器就會把原始函式的名稱繫結到叫用此物件得到的傳回值。
直接看練習吧~
def teacher(func): #定義裝飾器
def student_name(name): #內部函式
print("What's your name?") #裝飾器中要執行的程式碼
func(name)
return student_name
#使用裝飾器
@teacher #使用裝飾器
def student1(name): #定義普通函式
print('My name is {}.\n'.format(name))
@teacher
def student2(name):
print('My name is {}.\n'.format(name))
# @teacher
def student3(name):
print('My name is {}.\n'.format(name))
return name
#呼叫
student1("Jim")
student2("Justin")
print(student3("Jason"))
最後印出會變成這樣子~
那麼今天就先到這理吧~
感謝各位觀看
下集預告: