訪問javascript
內置類屬性java
__dict__ : 類的屬性(包含一個字典,由類的數據屬性組成) __doc__ :類的文檔字符串 __name__: 類名 __module__: 類定義所在的模塊(類的全名是'__main__.className',若是類位於一個導入模塊mymod中,那麼className.__module__ 等於 mymod) _bases__ : 類的全部父類構成元素(包含了一個由全部父類組成的元組)
類的專有方法python
在類地內部,使用def關鍵字能夠爲類定義一個方法,與通常函數定義不一樣,類方法必須包含參數self,且爲第一個參數 __init__ 構造函數,在生成對象時調用 __del__ 析構函數,釋放對象時使用 __repr__ 打印,轉換 __setitem__按照索引賦值 __getitem__按照索引獲取值 __len__得到長度 __cmp__比較運算 __call__函數調用 __add__加運算 __sub__減運算 __mul__乘運算 __div__除運算 __mod__求餘運算 __pow__稱方
類的封裝c++
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老是首先查找對應類型的方法,若是它不能在派生類中找到對應的方法,它纔開始到基類中逐個查找。(先在本類中查找調用的方法,找不到纔去基類中找)。 若是在繼承元組中列了一個以上的類,那麼它就被稱做"多重繼承" 。
多態函數