91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何用Python來理解委托模式

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-11-02 15:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

有時候,我們想通過一個類來調用另一個類里的方法來處理請求,即這兩個類對象參與處理同一個請求對象,只不過一個是 委托者 ,一個是 處理者

比如我們現在有一個名為Dog的類對象,我們希望通過它調用 voice 類產生“狗吠 ” 聲,這時候就可以采用 委托模式 。下面就用Python來理解這個設計模式。

Python里,在委托者類對象中,需要這么設計:

1. 重寫__getattr__方法,使得委托者獲得處理者的屬性。

2. 判斷該屬性是否為可調用函數,如果不是則直接返回,如果是,則用 wrapper 封裝為可調用對象。

如下所示:

圖片

這樣做的好處是,處理者(被委托者)不需要做太多的更改,一般是一個公用類。我們的處理者如下:

圖片

這樣就可以通過委托者來調用另一個類的方法來對請求進行處理:

if __name__ == '__main__':
    John = Dog(voice())
    John.words('汪汪')

實際上,如果你不重寫__getattr__,一樣可以用以下的方式調用到voice類:

if __name__ == '__main__':
    John = Dog(voice())
    John.voice.words('汪汪')

這兩種有什么區別?使用委托模式,可以簡化代碼,優化可讀性,你不需要再調用voice對象, 委托者自己會利用 getattr 找到相應的對象里的方法。

不過,在Python里,委托模式這樣的寫法其實是 un-pythonic 的,因為它將調用的方法隱藏在了執行者中, 可讀性比較差。如果不是特殊需要,我們一般不會這么做,這里只是給大家展示如何用Python來理解這個設計模式。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4381

    瀏覽量

    64924
  • 代碼
    +關注

    關注

    30

    文章

    4900

    瀏覽量

    70775
  • python
    +關注

    關注

    56

    文章

    4827

    瀏覽量

    86797
  • Voice
    +關注

    關注

    0

    文章

    9

    瀏覽量

    7395
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    關于委托理解??!

    委托一、委托 委托是什么呢?這個名字的意思已經賦予了我們想象的空間,你是編程的,你現在正在寫一個ASP.NET網頁,而JS是你不熟悉的,于是你委托你的一位同事
    發表于 02-07 17:14

    何用rpi.gpio的模塊控制gpio接口產生pwm波控制舵機?

    菜鳥請教 請問如何用python的rpi.gpio的模塊控制gpio接口產生pwm波控制舵機, 以及如何控制無限模塊的,鏈接方法和具體程序
    發表于 06-26 05:55

    請問如何用Python來寫單片機?

    請問如何用Python來寫單片機?
    發表于 06-15 09:29

    何用Python語言控制單片機?

    何用Python語言控制單片機?
    發表于 11-12 06:00

    何用python中的serial向串口發送和接收數據?

    何用python中的serial向串口發送和接收數據?
    發表于 11-22 06:35

    CH32V307評估板如何用Python開發?

    CH32V307評估板如何用Python開發?
    發表于 03-28 20:44

    何用python爬取抖音app數據

    記錄一下如何用python爬取app數據,本文以爬取抖音視頻app為例。
    的頭像 發表于 03-16 09:07 ?5887次閱讀

    何用Python操作Excel文件

    今天小編介紹一下如何用Python操作Excel文件,當中需要用到的模塊叫做openpyxl,其中我們會涉及到一些基本常規的操作,例如有 插入與查詢數據 分類統計數據 數據的可視化
    發表于 08-05 11:07 ?1219次閱讀

    何用Python計算提高機器學習算法和結果

    本文將簡要介紹常用的距離度量方法、它們的工作原理、如何用Python計算它們以及何時使用它們。這樣可以加深知識和理解,提高機器學習算法和結果。
    發表于 10-31 10:58 ?784次閱讀

    python有什么用 如何用python創建數據庫

    python有什么用 如何用python創建數據庫 Python是一種高級編程語言,可以用于開發各種類型的應用程序和工具。它的廣泛應用使它在編程領域中極為受歡迎。
    的頭像 發表于 08-28 16:41 ?1521次閱讀

    何用Python自動套用模板批量生成PDF文檔

    今天就給大家講講如何用Python自動套用模板批量生成的PDF文檔。 1.準備 開始之前,你要確保Python和pip已經成功安裝在電腦上噢,如果沒有,請訪問這篇文章: 超詳細Python
    的頭像 發表于 10-17 10:54 ?1449次閱讀
    如<b class='flag-5'>何用</b><b class='flag-5'>Python</b>自動套用模板批量生成PDF文檔

    何用Python實現文件系統的操作功能

    就來介紹一下如何用 Python 實現這些功能 輸出當前的路徑 我們可以通過 Python 當中的 OS 庫獲取當前文件所在的位置 im
    的頭像 發表于 10-30 14:27 ?649次閱讀
    如<b class='flag-5'>何用</b><b class='flag-5'>Python</b><b class='flag-5'>來</b>實現文件系統的操作功能

    何用Python自動套用模板批量生成PDF文檔

    辦最高效的事。 今天就給大家講講如何用Python自動套用模板批量生成下方這樣的PDF文檔。 1.準備 開始之前,你要確保Python和pip已經成功安裝在電腦上噢,如果沒有,請訪問這篇文章: 超詳細
    的頭像 發表于 10-31 10:56 ?2180次閱讀
    如<b class='flag-5'>何用</b><b class='flag-5'>Python</b>自動套用模板批量生成PDF文檔

    何用python實現RFM建模

    今天給大家分享的是如何用python實現RFM建模。 RFM模型的含義 RFM模型是衡量客戶價值和客戶創利能力的重要工具和手段。在眾多的客戶關系管理(CRM)的分析模式中,RFM模型是被廣泛提到
    的頭像 發表于 11-02 10:36 ?1262次閱讀
    如<b class='flag-5'>何用</b><b class='flag-5'>python</b>實現RFM建模

    如何使用linux下gdb調試python程序

    如何使用linux下gdb調試python程序? 在Linux下,可以使用GDB(GNU調試器)調試Python程序。GDB是一個強大的調試工具,可以幫助開發者診斷和修復程序中的錯
    的頭像 發表于 01-31 10:41 ?3247次閱讀
    主站蜘蛛池模板: 色综合美国色农夫网 | 国产特黄特色的大片观看免费视频 | 波多野结衣在线观看一区二区三区 | 午夜湿影院 | 精品亚洲综合在线第一区 | 亚色影视| 7777sq国产精品| 性性性性bbbbxxxx | 日日噜噜噜夜夜爽爽狠狠图片 | 日本三级香港三级人妇网站 | 成人久久久精品乱码一区二区三区 | 人人干在线 | 一本高清在线 | 四虎最新网址 | 天堂bt种子资源地址在线 | 五月天亚洲综合 | 91人成网站色www免费 | 国产免费高清福利拍拍拍 | 永久视频在线观看 | 免费看的一级毛片 | 1024你懂的国产欧美日韩在 | 午夜视频网站在线观看 | 欧美极品一区 | 日本三浦理惠子中文字幕 | 久久婷婷六月 | 亚洲午夜免费视频 | 欧美在线不卡视频 | 久久久久女人精品毛片 | 国内真实下药迷j在线观看 国内自拍 亚洲系列 欧美系列 | 一区二区三区免费视频播放器 | 奇米一区二区三区四区久久 | 五月婷婷六月婷婷 | 新天堂在线| 亚洲我射| 成人免费看黄网站无遮挡 | 午夜免费看片 | 午夜视频在线观看完整高清在线 | 四虎影院永久地址 | 亚洲免费看片 | 国模私拍视频在线观看 | 欧美高清性色生活 |