国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python裝飾器學習筆記

Cristalven / 3480人閱讀

摘要:前言最近跟著流暢的和學習,看到裝飾器部分,有些頭大倒不是因為概念難以理解,而是書和網(wǎng)上文章中有些地方有些矛盾之處在簡單學習和實踐之后,整理出我對裝飾器的理解如下裝飾器的定義在不同語境下,裝飾器有不一樣的含義,我大致認為有種定義一種把另一個對

前言

最近跟著《流暢的Python》《Python Cookbook》學習,看到裝飾器部分,有些頭大
倒不是因為概念難以理解,而是書和網(wǎng)上文章中有些地方有些矛盾之處
在簡單學習和實踐之后,整理出我對裝飾器的理解如下

裝飾器的定義

在不同語境下,裝飾器有不一樣的含義,我大致認為有3種定義:

一種把另一個對象當參數(shù)的對象

一種語法糖

面對對象設計中的裝飾器模式

之所以這里特別指出,是因為在很多文章和書中
把裝飾器定義成一個函數(shù),有些更擴展一些,把裝飾器定義成一個callable對象
對剛開始學習的讀者來說這么解釋或許不錯,但在使用python的過程中,我們發(fā)現(xiàn)裝飾器可以是

函數(shù)

類 (例: classmethodproperty)

實例方法 (例: FLask類的實例approute方法)

類方法

如果說方法有__call__方法,能符合上面callable對象的定義的話
classmethod類和property類可沒__call__方法,所以我認為更準確的定義是我上面總結(jié)的前兩點

裝飾器的作用

廣義上說,更優(yōu)雅地處理對象,相比taget = decorate(target)@decorate可要優(yōu)雅多了
狹義上說,各種功能:

禁止函數(shù)運行 (剛想到,寫個不return原函數(shù)的裝飾器去裝飾某函數(shù),這個函數(shù)不就不運行了嘛,不曉得是否有人會這么干)

記錄函數(shù)的運行狀況

緩存計算結(jié)果

檢查/修改參數(shù)

裝逼?

其他

裝飾器的使用注意點

使用多個裝飾器時的運行順序;最外圍/上面的裝飾器最晚生效;特別當裝飾器返回一個和原先不同類型的對象(比如classmethod)時,更要小心

記得用functools中的wraps保留被裝飾對象的屬性

其他(還沒想到)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/41033.html

相關(guān)文章

  • python學習筆記 函數(shù)裝飾

    摘要:實現(xiàn)一個簡單的裝飾器輸出被裝飾函數(shù)的運行時間簡單運用運行結(jié)果運行過程中,首先輸出裝飾器函數(shù)中的內(nèi)容被裝飾函數(shù)運行時間長度函數(shù)名稱和實際參數(shù)計算結(jié)果然后得到最終的計算結(jié)果。 函數(shù)裝飾器 函數(shù)裝飾器用于在源碼中標記函數(shù), 以某種方式增強函數(shù)的行為,這是一個強大的功能。 函數(shù)裝飾器是一個可調(diào)用對象,其參數(shù)是另外一個函數(shù),即被裝飾函數(shù)。裝飾器可能處理被裝飾函數(shù),然后將其返回,或者將其替換成另一...

    jsliang 評論0 收藏0
  • python學習筆記裝飾

    摘要:裝飾器介紹中的裝飾器的目的是為一個目標函數(shù)添加額外的功能卻不修改函數(shù)本身。裝飾器的本身其實是一個特殊的函數(shù)。那么有啥更好的解決方式呢裝飾器代碼像上面這么寫,可以較好地解決了上面提到的第一個問題。裝飾器語法糖放在函數(shù)前面,相當于執(zhí)行了等。 怎么理解python中的裝飾器 一個比喻 知乎上有一個比較形象的比喻 https://www.zhihu.com/questio...:人類穿著內(nèi)褲很...

    張金寶 評論0 收藏0
  • 設計模式筆記python實現(xiàn)

    摘要:設計模式學習裝飾器模式這個在我的筆記中有介紹工廠模式未完成,待更新單例模式保證一個對象最多只有一個實例存在。對安全性要求較高的場景,比如銀行的修改余額業(yè)務。如果我們不使用單例模式,那么就會創(chuàng)建三個不同的實例。 設計模式學習 1.裝飾器模式 這個在我的筆記中有介紹 2.工廠模式 author : liibntime :2018-11-6未完成,待更新 3.單例模式 保證一個對象最多只有一...

    raledong 評論0 收藏0
  • Python 裝飾的理解

    摘要:的裝飾器可以實現(xiàn)在代碼運行期間修改函數(shù)的上下文,即可以定義函數(shù)在執(zhí)行之前進行何種操作和函數(shù)執(zhí)行后進行何種操作,而函數(shù)本身并沒有任何的改變。中的參數(shù),實際上則是傳遞給實際上是的參數(shù)因為裝飾器也是個函數(shù),那么裝飾器自己的能不能有參數(shù)傳遞呢。 Python的裝飾器可以實現(xiàn)在代碼運行期間修改函數(shù)的上下文, 即可以定義函數(shù)在執(zhí)行之前進行何種操作和函數(shù)執(zhí)行后進行何種操作, 而函數(shù)本身并沒有任何的改...

    animabear 評論0 收藏0
  • Python

    摘要:最近看前端都展開了幾場而我大知乎最熱語言還沒有相關(guān)。有關(guān)書籍的介紹,大部分截取自是官方介紹。但從開始,標準庫為我們提供了模塊,它提供了和兩個類,實現(xiàn)了對和的進一步抽象,對編寫線程池進程池提供了直接的支持。 《流暢的python》閱讀筆記 《流暢的python》是一本適合python進階的書, 里面介紹的基本都是高級的python用法. 對于初學python的人來說, 基礎(chǔ)大概也就夠用了...

    dailybird 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<