<option id="mwy0y"><strong id="mwy0y"></strong></option>
  • <ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <ul id="mwy0y"></ul>
  • <del id="mwy0y"><dfn id="mwy0y"></dfn></del><ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <abbr id="mwy0y"></abbr>

    千鋒教育-做有情懷、有良心、有品質的職業教育機構

    400-811-9990
    手機站
    千鋒教育

    千鋒學習站 | 隨時隨地免費學

    千鋒教育

    掃一掃進入千鋒手機站

    領取全套視頻
    千鋒教育

    關注千鋒學習站小程序
    隨時隨地免費學習課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當前位置:長沙千鋒IT培訓  >  技術干貨  >  python 二次加工標準類型(包裝)

    python 二次加工標準類型(包裝)

    來源:千鋒教育
    發布人:xqq
    時間: 2023-11-07 23:44:08

    包裝:python為大家提供了標準數據類型,以及豐富的內置方法,其實在很多場景下我們都需要基于標準數據類型

    來定制我們自己的數據類型,新增/改寫方法,這就用到了我們剛學的繼承/派生知識(其他的標準類型均可以通過下面的

    方式進行二次加工)。

    #基于繼承的原理,來定制自己的數據類型(繼承標準類型)

    classList(list):#繼承list所有的屬性,也可以派生出自己新的,比如append和insert

    defappend(self,p_object):#自己加工追加的方法

    ifnotisinstance(p_object,int):#加上條件,不是int就拋出異常

    raiseTypeError("mustbeint")#返回提示輸入類型

    #self.append(p_object)#注意:這樣就無限遞歸了

    super().append(p_object)#此時才會完成追加

    definsert(self,index,p_object):#自己加工指定位置插入的方法

    ifnotisinstance(p_object,int):#加上條件,不是int就拋出異常

    raiseTypeError("mustbeint")#返回提示輸入類型

    super().insert(index,p_object)#此時才會完成插入

    l1=List([0,1,2])#實例化對象l1

    print(l1)#打印列表l1

    l1.append(3)#對象l1追加元素3,注意必須是int

    print(l1)#打印列表l1

    #l1.append("5")#此時會拋出異常,"5"不是int

    l1.insert(0,-1)#在下標0的位置,插入元素-1,注意元素的類型

    l1.insert(5,4)#在下標5的位置,插入元素4,注意元素的類型

    print(l1)#打印列表l1

    print(l1.index(4))#獲取元素的下標,沒有派生出自己的方法的時候,會繼承父類的方法

    --------------------輸出結果------------------------

    [0,1,2]

    [0,1,2,3]

    [-1,0,1,2,3,4]

    5

    授權:授權是包裝的一個特性,包裝一個類型通常是對已存在的類型的一些定制,這種做法可以新建,修改或刪除原有

    產品的功能。其它的則保持原樣。授權的過程,即是所有更新的功能都是由新類的某部分來處理,但已存在的功能就授權給

    對象的默認屬性。

    實現授權的關鍵點就是覆蓋__getattr__方法。

    importtime

    classOpen:#open是一個函數,不是類,不能用繼承,so,用另一種方式:授權

    def__init__(self,file_path,m="r",endoce="utf8"):

    self.file=open(file_path,mode=m,encoding=endoce)#獲取文件句柄

    self.file_path=file_path#文件路徑

    self.mode=m#文件打開模式

    self.encoding=endoce#文件的編碼方式

    defwrite(self,line):#寫入文件

    t=time.strftime("%Y-%m-%d%X")#獲取時間格式

    self.file.write("%s--->%s"%(t,line))#前面加上時間,按格式寫入

    def__getattr__(self,item):#當方法不存在的時候,會觸發它的執行

    returngetattr(self.file,item)#獲取文件其他的方法,并返回給對象

    f1=Open("a.txt","w")#實例化對象f1,創建文件a.txt,以w模式

    f1.write("1、你好,我摩旅去了!\n")#按自己加工的方法寫入內容

    f1.write("2、你好,我摩旅去了!\n")#按自己加工的方法寫入內容

    f1.write("3、你好,我摩旅去了!\n")#按自己加工的方法寫入內容

    f1.close()#關閉文件

    f2=Open("a.txt","r")#實例化對象f2,查看文件a.txt,以r模式

    print(f2.read())#打印輸出a.txt的文件內容

    f2.seek(0)#剛看完,光標走到最后位置了。要想再看,就得把光標調到最開始位置

    print("-->:",f2.read())#加上標識,再看一遍

    f2.close()#關閉文件

    以上內容為大家介紹了Python增強,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.mobiletrain.org/

    以上內容為大家介紹了python二次加工標準類型(包裝),希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。

    聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

    猜你喜歡LIKE

    python實現WSGI的框架

    2023-11-13

    python打開文本文件有哪些方法?

    2023-11-13

    python使用loguru操作日志

    2023-11-13

    最新文章NEW

    python-=是什么意思

    2023-11-13

    pythonre是什么?

    2023-11-13

    python列表追加元素出錯的解決

    2023-11-13

    相關推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網友熱搜 更多>>