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

資訊專(zhuān)欄INFORMATION COLUMN

Python裝飾器vs裝飾器模式

stackvoid / 1041人閱讀

摘要:希望引以為戒鄭傳裝飾模式如果你了解,你肯定聽(tīng)過(guò)裝飾器模式。在面向?qū)ο笾校b飾模式指動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)。就增加一些功能來(lái)說(shuō),裝飾模式比生成子類(lèi)更為靈活。

漫談

如果作為一個(gè)Python入門(mén),不了解Python裝飾器也沒(méi)什么,但是如果作為一個(gè)中級(jí)Python開(kāi)發(fā)人員,如果再不對(duì)python裝飾器熟稔于心的話,那么可能并沒(méi)有量變積累到質(zhì)變。

我以前也看過(guò)很多講python 裝飾器的文章,但是都是看了就忘。一方面是沒(méi)有做太多的練習(xí),二是對(duì)它的領(lǐng)會(huì)不是很深。

希望引以為戒!!!

鄭傳 裝飾模式

如果你了解Java,你肯定聽(tīng)過(guò) 裝飾器模式。在面向?qū)ο笾校b飾模式指:動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)。就增加一些功能來(lái)說(shuō),裝飾模式比生成子類(lèi)更為靈活。

在設(shè)計(jì)模式學(xué)習(xí)----裝飾器模式,我摘取了下面一段使用裝飾器模式的代碼

public class DecoratorPattern {  
  
    /** 
     * @param args the command line arguments 
*/  
    public static void main(String[] args) {  
        // TODO code application logic here  
        Basket basket = new Original();  
        //一個(gè)裝飾的過(guò)程  
        Basket myBasket =new AppleDecorator(new BananaDecorator(new OrangeDecorator(basket)));   
        myBasket.show();  
    }  
}

等會(huì)注意下 Basket myBasket =new AppleDecorator(new BananaDecorator(new OrangeDecorator(basket))) 這段的寫(xiě)法

在Python官方文檔PythonDecorators 是這么介紹裝飾器的

What is a Decorator

A decorator is the name used for a software design pattern. Decorators dynamically alter the functionality of a function, method, or class without having to directly use subclasses or change the source code of the function being decorated.

翻一下: 就是裝飾器是一種軟件設(shè)計(jì)模式,被用來(lái)動(dòng)態(tài)修改函數(shù)、方法,或者類(lèi)功能卻不是通過(guò)子類(lèi),或者修改原代碼實(shí)現(xiàn)。

跟之前是一個(gè)意思!!!

Python Decorator

而Python的裝飾器與之不同,官方這么說(shuō):

The "decorators" we talk about with concern to Python are not exactly the same thing as the DecoratorPattern described above. A Python decorator is a specific change to the Python syntax that allows us to more conveniently alter functions and methods (and possibly classes in a future version). This supports more readable applications of the DecoratorPattern but also other uses as well.

Support for the decorator syntax was proposed for Python in PEP 318, and will be implemented in Python 2.4.

翻譯下:Python的 decorators 與 DecoratorPattern并不完全相同。 Python的decorator是一種特殊:在語(yǔ)法上實(shí)現(xiàn)允許我們更靈活地更改方法,或者函數(shù)。

例子:

@classmethod
def foo (arg1, arg2):
    ....

記住這個(gè)特殊的語(yǔ)法,后面我們會(huì)展示這個(gè)強(qiáng)大的語(yǔ)法糖

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/41763.html

相關(guān)文章

  • Python裝飾

    摘要:此篇緊接上篇裝飾器裝飾器模式,上篇主要是簡(jiǎn)述了裝飾器模式,跟的裝飾器。再來(lái)看裝飾器的實(shí)現(xiàn)。這時(shí)步輕松搞定裝飾器中的例子還是精妙的。最近學(xué)數(shù)據(jù)結(jié)構(gòu)與算法,寫(xiě)些裝飾器用來(lái)看程序執(zhí)行時(shí)間,真是再方便不過(guò)了 此篇緊接上篇 Python裝飾器vs裝飾器模式,上篇主要是簡(jiǎn)述了裝飾器模式,跟Python的裝飾器。 再來(lái)看Python裝飾器的實(shí)現(xiàn)。這里我推薦一篇文章(譯)-12步輕松搞定python裝...

    sunsmell 評(píng)論0 收藏0
  • Python裝飾

    摘要:一引用書(shū)流暢的書(shū)二基本概念問(wèn)題裝飾器是什么解答嚴(yán)格來(lái)說(shuō),裝飾器只是語(yǔ)法糖,裝飾器是可調(diào)用的對(duì)象,可以像常規(guī)的可調(diào)用對(duì)象那樣調(diào)用,特殊的地方是裝飾器的參數(shù)是一個(gè)函數(shù)問(wèn)題裝飾器有什么特性解答裝飾器有個(gè)特性,一是可以把被裝飾的函數(shù)替換成其他函數(shù), 一, 引用 [書(shū)] 流暢的Python [書(shū)] Effective Python 二, 基本概念 showImg(https://segme...

    aisuhua 評(píng)論0 收藏0
  • python設(shè)計(jì)模式-裝飾模式

    摘要:這種模式我們稱(chēng)之為裝飾器模式。因?yàn)檠b飾器模式是在給對(duì)象增加責(zé)任。以下情況適合使用裝飾器模式在不影響其他對(duì)象的情況下,以動(dòng)態(tài)透明的方式給單個(gè)對(duì)象添加職責(zé)。 前言 本篇的裝飾器模式不是講解的python中的語(yǔ)法糖 @ 這個(gè)裝飾器。而是講解設(shè)計(jì)模式中的裝飾器模式。網(wǎng)上很多的實(shí)現(xiàn)都是基于java和c++的。本文則使用python來(lái)實(shí)現(xiàn),其中有些實(shí)現(xiàn)可能在python并不需要那樣來(lái)寫(xiě)的,但是思路...

    Yuqi 評(píng)論0 收藏0
  • Python學(xué)習(xí)之路26-函數(shù)裝飾和閉包

    摘要:初步認(rèn)識(shí)裝飾器函數(shù)裝飾器用于在源代碼中標(biāo)記函數(shù),以某種方式增強(qiáng)函數(shù)的行為。函數(shù)裝飾器在導(dǎo)入模塊時(shí)立即執(zhí)行,而被裝飾的函數(shù)只在明確調(diào)用時(shí)運(yùn)行。只有涉及嵌套函數(shù)時(shí)才有閉包問(wèn)題。如果想保留函數(shù)原本的屬性,可以使用標(biāo)準(zhǔn)庫(kù)中的裝飾器。 《流暢的Python》筆記本篇將從最簡(jiǎn)單的裝飾器開(kāi)始,逐漸深入到閉包的概念,然后實(shí)現(xiàn)參數(shù)化裝飾器,最后介紹標(biāo)準(zhǔn)庫(kù)中常用的裝飾器。 1. 初步認(rèn)識(shí)裝飾器 函數(shù)裝飾...

    sunny5541 評(píng)論0 收藏0
  • 每天一個(gè)設(shè)計(jì)模式裝飾模式

    摘要:作者按每天一個(gè)設(shè)計(jì)模式旨在初步領(lǐng)會(huì)設(shè)計(jì)模式的精髓,目前采用和兩種語(yǔ)言實(shí)現(xiàn)。誠(chéng)然,每種設(shè)計(jì)模式都有多種實(shí)現(xiàn)方式,但此小冊(cè)只記錄最直截了當(dāng)?shù)膶?shí)現(xiàn)方式原文地址是每天一個(gè)設(shè)計(jì)模式之裝飾者模式歡迎關(guān)注個(gè)人技術(shù)博客。 作者按:《每天一個(gè)設(shè)計(jì)模式》旨在初步領(lǐng)會(huì)設(shè)計(jì)模式的精髓,目前采用javascript和python兩種語(yǔ)言實(shí)現(xiàn)。誠(chéng)然,每種設(shè)計(jì)模式都有多種實(shí)現(xiàn)方式,但此小冊(cè)只記錄最直截了當(dāng)?shù)膶?shí)現(xiàn)方式...

    brianway 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<