iT邦幫忙

2022 iThome 鐵人賽

DAY 29
0
Modern Web

簡單的python筆記系列 第 29

[Day 29] Python 裝飾器

  • 分享至 

  • xImage
  •  

來簡單介紹一下 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"))

最後印出會變成這樣子~

那麼今天就先到這理吧~
感謝各位觀看

下集預告:


上一篇
[Day 28] HTML 練習刻出一篇網頁
下一篇
[Day 30] 完賽心得!!
系列文
簡單的python筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言