摘要:在類內部的方法中使用時。類的私有方法兩個下劃線開頭,聲明該方法為私有方法,不能在類地外部調用。先在本類中查找調用的方法,找不到才去基類中找。如果在繼承元組中列了一個以上的類,那么它就被稱作多重繼承。
類定義
類對象:創建一個類之后,可以通過類名訪問、改變其屬性、方法
實例對象:類實例化后,可以使用其屬性,可以動態的為實例對象添加屬性(類似javascript)而不影響類對象。
訪問
getattr(obj, name[, default]) : 訪問對象的屬性
hasattr(obj,name) : 檢查是否存在一個屬性
setattr(obj,name,value) : 設置一個屬性。如果屬性不存在,會創建一個新屬性
delattr(obj, name) : 刪除屬性
內置類屬性
__dict__ : 類的屬性(包含一個字典,由類的數據屬性組成) __doc__ :類的文檔字符串 __name__: 類名 __module__: 類定義所在的模塊(類的全名是"__main__.className",如果類位于一個導入模塊mymod中,那么className.__module__ 等于 mymod) _bases__ : 類的所有父類構成元素(包含了一個由所有父類組成的元組)
類的專有方法
在類地內部,使用def關鍵字可以為類定義一個方法,與一般函數定義不同,類方法必須包含參數self,且為第一個參數 __init__ 構造函數,在生成對象時調用 __del__ 析構函數,釋放對象時使用 __repr__ 打印,轉換 __setitem__按照索引賦值 __getitem__按照索引獲取值 __len__獲得長度 __cmp__比較運算 __call__函數調用 __add__加運算 __sub__減運算 __mul__乘運算 __div__除運算 __mod__求余運算 __pow__稱方
類的封裝
python通過變量名命名來區分屬性和方法的訪問權限,默認權限相當于c++和java中的public 類的私有屬性: __private_attrs:兩個下劃線開頭,聲明該屬性為私有,不能在類地外部被使用或直接訪問。在類內部的方法中使用時self.__private_attrs。 類的私有方法:__private_method:兩個下劃線開頭,聲明該方法為私有方法,不能在類地外部調用。在類的內部調用 self.__private_methods 雖然python不允許實例化的類訪問私有數據,但可以使用 object._className__attrName 訪問屬性。 其實python內部私有化的實現只是將attrName屬性變為了_className__attrName而已
類的繼承
面向對象的編程帶來的主要好處之一是代碼的重用,實現這種重用的方法之一是通過繼承機制。繼承完全可以理解成類之間的類型和子類型關系。 需要注意的地方:繼承語法 class 派生類名(基類名)://... 基類名寫作括號里,基本類是在類定義的時候,在元組之中指明的。 在python中繼承中的一些特點: 1:在繼承中基類的構造(__init__()方法)不會被自動調用,它需要在其派生類的構造中親自專門調用。使用super().__init__()或parentClassName.__init__() 2:在調用基類的方法時,需要加上基類的類名前綴,且需要帶上self參數變量。區別于在類中調用普通函數時并不需要帶上self參數 3:Python總是首先查找對應類型的方法,如果它不能在派生類中找到對應的方法,它才開始到基類中逐個查找。(先在本類中查找調用的方法,找不到才去基類中找)。 如果在繼承元組中列了一個以上的類,那么它就被稱作"多重繼承" 。
多態
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42290.html
摘要:第一個參數類名第二個參數父類元祖第三個參數屬性方法可以通過指定類的元類另一種指定函數元類轉載指定元類輸出輸出二枚舉類在開發中經常設置多組常量,可以把一組相關常量定義在一個中,且不可變,而且成員可以直接比較。 一、元類 1、type()函數可以返回對象的類型,也可以創建出新的類型。它可以改變類創建時的行為,實現動態創建類。 # 第一個參數:類名 # 第二個參數:父類元祖 # 第三個參數:...
摘要:子類繼承父類任何屬性,包括數據屬性和方法屬性。繼承,子類獲得了父類的全部功能多態,子類的方法覆蓋了父類的方法在子類中,分別重新修改了方法的實現,這種可以成為多態。 一、繼承 繼承的概念 在面向對象程序設計中,當我們定義一個類class的時候,可以從某個現有的class繼承,新的class稱為子類(Subclass),而被繼承的class稱為基類、父類或超類(Base class、Su...
摘要:于發表了著名的有害論的論文引起了長達數年的論戰并由此產生了結構化程序設計方法。到現在為止面向對象已經成為了主流的開發思想。面向對象的程序設計優點解決了程序的擴展性。 [Python3]Python面向對象的程序設計 一、面向對象的程序設計的由來 1.第一階段:面向機器,1940年以前 最早的程序設計都是采用機器語言來編寫的,直接使用二進制碼來表示機器能夠識別和執行的指令和數據。 簡單來...
摘要:本文重點協議是中非正式的接口了解抽象基類的基本概念以及標準庫中的抽象基類掌握抽象基類的使用方法。三抽象基類的使用通過繼承聲明抽象基類聲明抽象基類最簡單的方式是繼承或其他抽象基類注意在之間,繼承抽象基類的語法是。 導語:本文章記錄了本人在學習Python基礎之面向對象篇的重點知識及個人心得,打算入門Python的朋友們可以來一起學習并交流。 本文重點: 1、協議是Python中非正式的接...
摘要:本文重點不要試圖在內置類型的子類中重寫方法,可以繼承的可拓展類尋求變通掌握多重繼承中的和了解處理多重繼承的一些建議。子類化的代碼如下輸出小結上述問題只發生在語言實現的內置類型子類化情況中,而且只影響直接繼承內置類型的自定義類。 導語:本文章記錄了本人在學習Python基礎之面向對象篇的重點知識及個人心得,打算入門Python的朋友們可以來一起學習并交流。 本文重點: 1、不要試圖在內置...
閱讀 1631·2021-10-14 09:43
閱讀 5534·2021-09-07 10:21
閱讀 1279·2019-08-30 15:56
閱讀 2131·2019-08-30 15:53
閱讀 1236·2019-08-30 15:44
閱讀 2013·2019-08-30 15:44
閱讀 1323·2019-08-29 17:24
閱讀 757·2019-08-29 15:19