python裝飾器初解

來源:互聯網
上載者:User

標籤:好處   任務   部分   java   常用   沒有   print   流程   功能   

       接觸python也有大半年的時間了,也進行了不少python相關的開發工作,但是對python的理解仍然是不夠深入的,目前的知識點還僅僅局限在常用的基礎知識上,對於比較深入的內容都沒有認真研究學習過,最近有個任務需要在原本的開發流程中加入日誌功能,掌握裝飾器技術對完成這次任務是很有協助的。

       因為在接觸python之前主要是在學習前端的知識的,對於javascript的知識瞭解的比較多,經過之前對裝飾器知識的尋找學習後,知道python中的裝飾器跟javascript中的閉包有異曲同工之妙,都是在一個函數裡麵包含另一個函數,但是這兩部分的使用上還是有很大的區別的。

       裝飾器的基本文法格式為:

def deco():    def wrapper():        print ‘aa‘    return wrapper@decodef myfunc():    print ‘bb‘myfunc()        

        在上述代碼中,對於裝飾器的使用直接使用了它的文法糖形式@,這樣寫的好處是顯而易見的,在後面調用的時候不用再重複寫函數名稱,而只是用@代替。在python中的一個公用認知是一切皆對象,因此函數也是對象。這裡的@符號可以理解為myfunc=deco(myfunc);myfunc()的簡寫。

       使用裝飾器的好處是可以在被裝飾函數已經寫完的情況下直接使用@符號進行修飾,可以達到不用改變原有代碼的前提下增加新的功能。

python裝飾器初解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.