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

python設(shè)計模式之裝飾器模式

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

裝飾器模式

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

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

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

如何實現(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ù)對象并返回內(nèi)層函數(shù),內(nèi)層函數(shù)是正真的執(zhí)行函數(shù)。

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

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

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

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

相關(guān)文章

  • Tkinter中復(fù)選菜單是否被選中的判斷與設(shè)置方式

    Tkinter中復(fù)選菜單是否被選中的判斷與設(shè)置方式

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

    Python中Numpy模塊使用詳解

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

    詳解python變量的命名和使用

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

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

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

    pyautogui自動化控制鼠標(biāo)和鍵盤操作的步驟

    這篇文章主要介紹了pyautogui自動化控制鼠標(biāo)和鍵盤操作的步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    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的標(biāo)準(zhǔn)GUI庫,Python使用Tkinter可以快速的創(chuàng)建GUI應(yīng)用程序,用到相關(guān)控件的同學(xué)可以參考下
    2023-12-12
  • python中__slots__節(jié)約內(nèi)存的具體做法

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

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

最新評論

枣阳市| 孟连| 安徽省| 古丈县| 栾城县| 永登县| 桂阳县| 乐平市| 辛集市| 廉江市| 古丈县| 义乌市| 叙永县| 连城县| 横山县| 陵川县| 泾川县| 和田市| 梅河口市| 建阳市| 霍州市| 大悟县| 贺兰县| 菏泽市| 剑阁县| 双峰县| 象州县| 望都县| 汽车| 延吉市| 苏州市| 广丰县| 鄂托克旗| 喀喇沁旗| 肇东市| 阿城市| 陇南市| 芦山县| 弋阳县| 康马县| 洛阳市|