最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python設(shè)計模式之代理模式實例

 更新時間:2014年04月26日 11:17:59   投稿:junjie  
這篇文章主要介紹了設(shè)計模式中的代理模式Python實例,需要的朋友可以參考下

基于面向過程實現(xiàn)的代理模式

下面是一段體現(xiàn)該設(shè)計模式中心的面向過程的python代碼:

復(fù)制代碼 代碼如下:

def hello():
    print 'hi, i am hello'

def proxy():
    print 'prepare....'
    hello()
    print 'finish....'

if __name__ == '__main__':
    proxy()


運行結(jié)果:
復(fù)制代碼 代碼如下:

prepare....
hi, i am hello
finish....

有沒有想到裝飾器?


基于面向?qū)ο髮崿F(xiàn)的代理模式

復(fù)制代碼 代碼如下:

class AbstractSubject(object):

    def __init__(self):
        pass

    def request(self):
        pass

class RealSubject(AbstractSubject):

    def __init__(self):
        pass
    def request(self):
        print 'hi, i am RealSubject'

class ProxySubject(AbstractSubject):

    def __init__(self):
        self.__rs = RealSubject()

    def request(self):
        self.__beforeRequest()
        self.__rs.request()
        self.__afterRequest()

    def __beforeRequest(self):
        print 'prepare....'

    def __afterRequest(self):
        print 'finish....'

if __name__ == '__main__':
    subject = ProxySubject()
    subject.request()

如果RealSubject的初始化函數(shù)init有參數(shù),代理類ProxySubject可以作兩種方式的修改: 第一種: ProxySubject的init方法同樣也有參數(shù),初始化代理類的時候?qū)⒊跏蓟瘏?shù)傳遞給RealSubject。 第二種: 將ProxySubject的init方法改為:

復(fù)制代碼 代碼如下:

def __init__(self):
    self.__rs = None

將ProxySubject的request方法改為:
復(fù)制代碼 代碼如下:

def request(self, *args, **kwargs):
    if self.__rs == None:
        self.__rs = RealSubject(*args, **kwargs)
    self.__beforeRequest()
    self.__rs.request()
    self.__afterRequest()

的類似形式。

相關(guān)文章

  • Python的兩種異步HTTP請求詳解

    Python的兩種異步HTTP請求詳解

    這篇文章主要介紹了Python的兩種異步HTTP請求,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Django中l(wèi)og日志記錄的最佳實踐

    Django中l(wèi)og日志記錄的最佳實踐

    Django中的log日志記錄是一個非常重要的功能,可以幫助開發(fā)者快速定位和解決問題。本文將介紹Django中l(wèi)og日志記錄的基本概念和使用方法,并提供一些最佳實踐,幫助開發(fā)者更好地利用log日志記錄功能。
    2023-04-04
  • Python 調(diào)用Anthropic API 的兩種方式

    Python 調(diào)用Anthropic API 的兩種方式

    本文介紹了Python調(diào)用Anthropic API的兩種主要方式,包括使用requests庫和官方SDK,下面就來詳細(xì)的介紹一下具體調(diào)用方法,感興趣的可以了解一下
    2025-12-12
  • python pands實現(xiàn)execl轉(zhuǎn)csv 并修改csv指定列的方法

    python pands實現(xiàn)execl轉(zhuǎn)csv 并修改csv指定列的方法

    今天小編就為大家分享一篇python pands實現(xiàn)execl轉(zhuǎn)csv 并修改csv指定列的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 使用Python對Excel表內(nèi)容進(jìn)行中文提取的示例代碼

    使用Python對Excel表內(nèi)容進(jìn)行中文提取的示例代碼

    本項目是基于Tkinter的圖形界面應(yīng)用程序,用于從Excel文件中提取符合特定正則表達(dá)式模式(默認(rèn)提取中文)的文本內(nèi)容,并將結(jié)果輸出到指定列或新文件中,感興趣的小伙伴跟著小編一起來看看吧
    2025-11-11
  • python生成圖片驗證碼的方法

    python生成圖片驗證碼的方法

    這篇文章主要為大家詳細(xì)介紹了python生成圖片驗證碼的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 淺談numpy溢出錯誤

    淺談numpy溢出錯誤

    本文主要介紹了淺談numpy溢出錯誤,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 聊聊python dropna()和notnull()的用法區(qū)別

    聊聊python dropna()和notnull()的用法區(qū)別

    這篇文章主要介紹了聊聊python dropna()和notnull()的用法區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python 提高開發(fā)效率的5個小技巧

    python 提高開發(fā)效率的5個小技巧

    這篇文章主要介紹了python 提高開發(fā)效率的5個小技巧,幫助大家更好的進(jìn)行python開發(fā),感興趣的朋友可以了解下
    2020-10-10
  • Python實現(xiàn)微信消息防撤回功能的實例代碼

    Python實現(xiàn)微信消息防撤回功能的實例代碼

    這篇文章主要介紹了Python實現(xiàn)微信消息防撤回 ,需要的朋友可以參考下
    2019-04-04

最新評論

桂平市| 卢湾区| 澄城县| 类乌齐县| 专栏| 恩平市| 阿城市| 沂源县| 宜兰市| 哈巴河县| 武鸣县| 玉田县| 扎鲁特旗| 榕江县| 凤城市| 明光市| 菏泽市| 张家港市| 常州市| 文山县| 广安市| 察哈| 青海省| 永胜县| 涟源市| 双鸭山市| 绵竹市| 蚌埠市| 治多县| 长沙市| 安宁市| 常州市| 祁门县| 綦江县| 漳州市| 胶州市| 和田市| 白河县| 华阴市| 鄯善县| 淳安县|