成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python方法(二) - 類與繼承

DevWiki / 1206人閱讀

摘要:在類內(nèi)部的方法中使用時(shí)。類的私有方法兩個(gè)下劃線開頭,聲明該方法為私有方法,不能在類地外部調(diào)用。先在本類中查找調(diào)用的方法,找不到才去基類中找。如果在繼承元組中列了一個(gè)以上的類,那么它就被稱作多重繼承。

類定義

類對(duì)象:創(chuàng)建一個(gè)類之后,可以通過類名訪問、改變其屬性、方法

實(shí)例對(duì)象:類實(shí)例化后,可以使用其屬性,可以動(dòng)態(tài)的為實(shí)例對(duì)象添加屬性(類似javascript)而不影響類對(duì)象。


類的屬性

訪問

getattr(obj, name[, default]) : 訪問對(duì)象的屬性

hasattr(obj,name) : 檢查是否存在一個(gè)屬性

setattr(obj,name,value) : 設(shè)置一個(gè)屬性。如果屬性不存在,會(huì)創(chuàng)建一個(gè)新屬性

delattr(obj, name) : 刪除屬性

內(nèi)置類屬性

 __dict__ : 類的屬性(包含一個(gè)字典,由類的數(shù)據(jù)屬性組成)
 __doc__ :類的文檔字符串
 __name__: 類名
 __module__: 類定義所在的模塊(類的全名是"__main__.className",如果類位于一個(gè)導(dǎo)入模塊mymod中,那么className.__module__ 等于 mymod)
 _bases__ : 類的所有父類構(gòu)成元素(包含了一個(gè)由所有父類組成的元組)

類的專有方法

    在類地內(nèi)部,使用def關(guān)鍵字可以為類定義一個(gè)方法,與一般函數(shù)定義不同,類方法必須包含參數(shù)self,且為第一個(gè)參數(shù)
   __init__ 構(gòu)造函數(shù),在生成對(duì)象時(shí)調(diào)用
   __del__ 析構(gòu)函數(shù),釋放對(duì)象時(shí)使用
   __repr__ 打印,轉(zhuǎn)換
   __setitem__按照索引賦值
   __getitem__按照索引獲取值
   __len__獲得長(zhǎng)度
   __cmp__比較運(yùn)算
   __call__函數(shù)調(diào)用
   __add__加運(yùn)算
   __sub__減運(yùn)算
   __mul__乘運(yùn)算
   __div__除運(yùn)算
   __mod__求余運(yùn)算
   __pow__稱方

類的封裝

    python通過變量名命名來區(qū)分屬性和方法的訪問權(quán)限,默認(rèn)權(quán)限相當(dāng)于c++和java中的public
   類的私有屬性: __private_attrs:兩個(gè)下劃線開頭,聲明該屬性為私有,不能在類地外部被使用或直接訪問。在類內(nèi)部的方法中使用時(shí)self.__private_attrs。
    類的私有方法:__private_method:兩個(gè)下劃線開頭,聲明該方法為私有方法,不能在類地外部調(diào)用。在類的內(nèi)部調(diào)用 self.__private_methods
    雖然python不允許實(shí)例化的類訪問私有數(shù)據(jù),但可以使用 object._className__attrName 訪問屬性。
    其實(shí)python內(nèi)部私有化的實(shí)現(xiàn)只是將attrName屬性變?yōu)榱薩className__attrName而已

類的繼承

   面向?qū)ο蟮木幊處淼闹饕锰幹皇谴a的重用,實(shí)現(xiàn)這種重用的方法之一是通過繼承機(jī)制。繼承完全可以理解成類之間的類型和子類型關(guān)系。

   需要注意的地方:繼承語法 class 派生類名(基類名)://... 基類名寫作括號(hào)里,基本類是在類定義的時(shí)候,在元組之中指明的。

   在python中繼承中的一些特點(diǎn):

   1:在繼承中基類的構(gòu)造(__init__()方法)不會(huì)被自動(dòng)調(diào)用,它需要在其派生類的構(gòu)造中親自專門調(diào)用。使用super().__init__()或parentClassName.__init__()
   2:在調(diào)用基類的方法時(shí),需要加上基類的類名前綴,且需要帶上self參數(shù)變量。區(qū)別于在類中調(diào)用普通函數(shù)時(shí)并不需要帶上self參數(shù)
   3:Python總是首先查找對(duì)應(yīng)類型的方法,如果它不能在派生類中找到對(duì)應(yīng)的方法,它才開始到基類中逐個(gè)查找。(先在本類中查找調(diào)用的方法,找不到才去基類中找)。
   如果在繼承元組中列了一個(gè)以上的類,那么它就被稱作"多重繼承" 。

多態(tài)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42290.html

相關(guān)文章

  • Python類與枚舉類

    摘要:第一個(gè)參數(shù)類名第二個(gè)參數(shù)父類元祖第三個(gè)參數(shù)屬性方法可以通過指定類的元類另一種指定函數(shù)元類轉(zhuǎn)載指定元類輸出輸出二枚舉類在開發(fā)中經(jīng)常設(shè)置多組常量,可以把一組相關(guān)常量定義在一個(gè)中,且不可變,而且成員可以直接比較。 一、元類 1、type()函數(shù)可以返回對(duì)象的類型,也可以創(chuàng)建出新的類型。它可以改變類創(chuàng)建時(shí)的行為,實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建類。 # 第一個(gè)參數(shù):類名 # 第二個(gè)參數(shù):父類元祖 # 第三個(gè)參數(shù):...

    TigerChain 評(píng)論0 收藏0
  • Python 繼承 和 多態(tài)

    摘要:子類繼承父類任何屬性,包括數(shù)據(jù)屬性和方法屬性。繼承,子類獲得了父類的全部功能多態(tài),子類的方法覆蓋了父類的方法在子類中,分別重新修改了方法的實(shí)現(xiàn),這種可以成為多態(tài)。 一、繼承 繼承的概念 在面向?qū)ο蟪绦蛟O(shè)計(jì)中,當(dāng)我們定義一個(gè)類class的時(shí)候,可以從某個(gè)現(xiàn)有的class繼承,新的class稱為子類(Subclass),而被繼承的class稱為基類、父類或超類(Base class、Su...

    dance 評(píng)論0 收藏0
  • [Python3]Python面向?qū)ο蟮某绦蛟O(shè)計(jì)

    摘要:于發(fā)表了著名的有害論的論文引起了長(zhǎng)達(dá)數(shù)年的論戰(zhàn)并由此產(chǎn)生了結(jié)構(gòu)化程序設(shè)計(jì)方法。到現(xiàn)在為止面向?qū)ο笠呀?jīng)成為了主流的開發(fā)思想。面向?qū)ο蟮某绦蛟O(shè)計(jì)優(yōu)點(diǎn)解決了程序的擴(kuò)展性。 [Python3]Python面向?qū)ο蟮某绦蛟O(shè)計(jì) 一、面向?qū)ο蟮某绦蛟O(shè)計(jì)的由來 1.第一階段:面向機(jī)器,1940年以前 最早的程序設(shè)計(jì)都是采用機(jī)器語言來編寫的,直接使用二進(jìn)制碼來表示機(jī)器能夠識(shí)別和執(zhí)行的指令和數(shù)據(jù)。 簡(jiǎn)單來...

    OpenDigg 評(píng)論0 收藏0
  • Python基礎(chǔ)之接口——從協(xié)議到抽象基類

    摘要:本文重點(diǎn)協(xié)議是中非正式的接口了解抽象基類的基本概念以及標(biāo)準(zhǔn)庫中的抽象基類掌握抽象基類的使用方法。三抽象基類的使用通過繼承聲明抽象基類聲明抽象基類最簡(jiǎn)單的方式是繼承或其他抽象基類注意在之間,繼承抽象基類的語法是。 導(dǎo)語:本文章記錄了本人在學(xué)習(xí)Python基礎(chǔ)之面向?qū)ο笃闹攸c(diǎn)知識(shí)及個(gè)人心得,打算入門Python的朋友們可以來一起學(xué)習(xí)并交流。 本文重點(diǎn): 1、協(xié)議是Python中非正式的接...

    TwIStOy 評(píng)論0 收藏0
  • Python繼承的優(yōu)缺點(diǎn)

    摘要:本文重點(diǎn)不要試圖在內(nèi)置類型的子類中重寫方法,可以繼承的可拓展類尋求變通掌握多重繼承中的和了解處理多重繼承的一些建議。子類化的代碼如下輸出小結(jié)上述問題只發(fā)生在語言實(shí)現(xiàn)的內(nèi)置類型子類化情況中,而且只影響直接繼承內(nèi)置類型的自定義類。 導(dǎo)語:本文章記錄了本人在學(xué)習(xí)Python基礎(chǔ)之面向?qū)ο笃闹攸c(diǎn)知識(shí)及個(gè)人心得,打算入門Python的朋友們可以來一起學(xué)習(xí)并交流。 本文重點(diǎn): 1、不要試圖在內(nèi)置...

    Sourcelink 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<