【Python基礎】Python修飾符@Decorator:全網最簡單搞懂修飾符的一篇文章 別再問我為什麼出現@了!
一、前言
常常看到別人的程式碼Code裡出現@嗎?
網路上看了很多Python修飾符文章還是覺得很難嗎?
這篇文章就是為你而生!五分鐘看完就可以讓code更簡單!
二、什麼是@什麼是修飾符Decorator
在Python裡面看到@或稱修飾符或Decorator都是同一種東西,而它的功用就是讓程式更簡便!修飾符有下面幾個特色:
1.修飾符是一個方法(函數),也就是說是我們def出來的東西,只是參數為一個方法
2.修飾符的主要功能是修飾其他方法,進而讓程式更好寫
3.修飾符的使用:會在其他def上看到@
4.修飾符會先被執行(記住這一句話看完範例就明白了)
三、Python修飾符(Decorator)簡單範例
(1) 簡單範例1-修飾符的運作
讓我們看第一個範例,首先我們宣告一個good方法,而後其作用是先print good後去執行func這個參數,我們把而後定義一個test方法,並且用good去修飾它。
其運作結果為先去執行good方法,而後依照順序先print good後再去執行func,此時你我都知道func這時就代表test,test就是print出nash。
簡單來說就是被修飾的方法會被當成修飾符方法的參數
# 簡單範例1
def good(func):
print('good')
func() # 呼叫被修飾的方法
@good
def test():
print('nash')
(2)簡單範例2-被修飾的方法中帶有參數
這個範例可以看到test帶有name參數,此時的@方法該怎麼寫?很簡單多一層def就好,也就是說先執行了good而後回傳了inner,inner帶有的參數x就是被修飾函數的參數。
所以在good中可以看到回傳inner的時候去執行被修飾函數func(此時是test),而其帶有參數x(此時為test中的name參數)。
# 簡單範例2
def good(func):
def inner(x): # 在修飾符方法中多一層def接收被修飾方法的參數
func(x) # 運作被修飾方法
return inner # 執行inner
@good
def test(name):
print(name)
test('nash')
四、修飾符簡單應用
【Python基礎】Python修飾符計時器:每個def都給他無痛@快來計時來一下吧!
留言列表