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

python設計模式之裝飾器模式

 更新時間:2022年05月11日 08:44:15   作者:??圖圖加油????  
這篇文章主要介紹了python設計模式之裝飾器模式,文章基于python得設計模式資料展開飾器模式得詳細資料,具有一定的參考價值,需要的小伙伴可以參考一下

裝飾器模式

裝飾器模式解決什么問題?

  • 增加新功能,且不改變原有功能和代碼
  • 選配,根據不同情況,動態(tài)調整功能

裝飾器,顧名思義,就是用來裝飾其他實物,增加被裝飾物的功能而不改變被裝飾物。這就像我們買車,同一款車型,有很多功能是選配的,但是車的核心功能不變。我們可以在購買時,根據需要選配不同的配置。

如何實現(xiàn)?

想象一下,你是一個裝修工,如果要裝飾一輛車,那么你首先需要有一輛車,而且在裝飾過程中,你不能夠改變車原有的功能(接口)。

如類圖所示:

  • 核心功能Core和所有裝飾器都必須實現(xiàn)Interface接口
  • 所有裝飾器以組合的方式保存接口實例
class Core:
    def some_action():
        pass

class Decorator:
    def __init__(self,core):
        self.core = core

    def some_action():
        ....
        self.core.some_action()
        .....

python 裝飾器語法糖

裝飾器太常用了,python專門的語法糖簡化了裝飾器的使用。最外層函數(shù)接收一個函數(shù)對象并返回內層函數(shù),內層函數(shù)是正真的執(zhí)行函數(shù)。

# 裝飾器定義
def decorator(func):
    def wrapper(*args,**kwargs):
        .....
        result = func(*args,**kwargs)
        ....
        return result
    return wrapper
 # 裝飾器使用
 @decorator
 def func():
     pass

雖然形式變了,但是實質沒有變:保存接口實例,實現(xiàn)相同的接口。

  • 保存接口實例容易理解,因為傳入了函數(shù)func對象。
  • 實現(xiàn)相同的接口怎么理解?語法糖@xxxx的操作等價于func = decorator(func),即將內層函數(shù)重命名了原函數(shù)名。

到此這篇關于python設計模式之裝飾器模式的文章就介紹到這了,更多相關python裝飾器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Tkinter中復選菜單是否被選中的判斷與設置方式

    Tkinter中復選菜單是否被選中的判斷與設置方式

    這篇文章主要介紹了Tkinter中復選菜單是否被選中的判斷與設置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python中Numpy模塊使用詳解

    Python中Numpy模塊使用詳解

    這篇文章主要介紹了Python中Numpy模塊使用詳解,NumPy是Python 的一個擴展程序庫,支持大量的維度數(shù)組與矩陣運算。更多相關內容需要的朋友可以參考一下
    2022-07-07
  • 詳解python變量的命名和使用

    詳解python變量的命名和使用

    變量名只能包含字母、數(shù)字和下劃線,本文主要介紹了詳解python變量的命名和使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-12-12
  • 基于Python開發(fā)高效文件搜索與內容匹配工具

    基于Python開發(fā)高效文件搜索與內容匹配工具

    在日常的開發(fā)和辦公中,查找和篩選特定文件或文件內容的需求十分常見,本文將基于PyQt6開發(fā)一個文件搜索工具,有需要的小伙伴可以參考一下
    2025-03-03
  • pyautogui自動化控制鼠標和鍵盤操作的步驟

    pyautogui自動化控制鼠標和鍵盤操作的步驟

    這篇文章主要介紹了pyautogui自動化控制鼠標和鍵盤操作的步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 使用Python和Prometheus跟蹤天氣的使用方法

    使用Python和Prometheus跟蹤天氣的使用方法

    這篇文章主要介紹了使用Python和Prometheus跟蹤天氣的使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 淺談Pandas Series 和 Numpy array中的相同點

    淺談Pandas Series 和 Numpy array中的相同點

    今天小編就為大家分享一篇淺談Pandas Series 和 Numpy array中的相同點,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python 2.7中文顯示與處理方法

    Python 2.7中文顯示與處理方法

    今天小編就為大家分享一篇Python 2.7中文顯示與處理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python GUI編程之tkinter模塊Toplevel控件實現(xiàn)搭建父子窗口

    Python GUI編程之tkinter模塊Toplevel控件實現(xiàn)搭建父子窗口

    這篇文章主要介紹了Python使用tkinter模塊Toplevel控件搭建父子窗口的實現(xiàn)方法,Tkinter是Python的標準GUI庫,Python使用Tkinter可以快速的創(chuàng)建GUI應用程序,用到相關控件的同學可以參考下
    2023-12-12
  • python中__slots__節(jié)約內存的具體做法

    python中__slots__節(jié)約內存的具體做法

    在本篇內容里小編給大家分享的是一篇關于python中__slots__節(jié)約內存的具體做法,有需要的朋友們可以跟著學習參考下。
    2021-07-07

最新評論

安宁市| 革吉县| 诸城市| 津南区| 巴彦县| 杭锦旗| 临汾市| 甘谷县| 馆陶县| 玉树县| 德江县| 大新县| 高邮市| 昌黎县| 昭平县| 富裕县| 平利县| 大英县| 宣城市| 肥乡县| 广南县| 衡南县| 怀柔区| 镇康县| 凤城市| 萨迦县| 余江县| 大港区| 大悟县| 卓尼县| 渝北区| 吐鲁番市| 观塘区| 平远县| 手机| 高青县| 平谷区| 青浦区| 东兴市| 客服| 永春县|