class <類名>: <語句>
類的私有屬性:
__private_attrs 兩個下劃線開頭,聲明該屬性爲私有,不能在類地外部被使用或直接訪問。在類內部的方法中使用時 self.__private_attrs
類的方法
在類地內部,使用def關鍵字能夠爲類定義一個方法,與通常函數定義不一樣,類方法必須包含參數self,且爲第一個參數
私有的類方法
__private_method 兩個下劃線開頭,聲明該方法爲私有方法,不能在類地外部調用。在類的內部調用slef.__private_methodspython
類的專有方法:
__init__ 構造函數,在生成對象時調用
__del__ 析構函數,釋放對象時使用
__repr__ 打印,轉換
__setitem__按照索引賦值
__getitem__按照索引獲取值
__len__得到長度
__cmp__比較運算
__call__函數調用
__add__加運算
__sub__減運算
__mul__乘運算
__div__除運算
__mod__求餘運算
__pow__稱方編程
class people: '定義人類' #定義基本屬性 name = '' age = 0 #定義私有屬性 __weight = 0 #定義構造函數 def __init__(self,n,a,w): self.name = n self.age = a self.__weight = w def speak(self): print("%s is speaking :I am %d years old and my weight is %d" %(self.name,self.age,self.__weight)) def __del__(self): print("This is del") p = people('Tom',10,30) print(p.name) # Tom p.speak() #Tom is speaking :I am 10 years old and my weight is 30
面向對象的編程帶來的主要好處之一是代碼的重用,實現這種重用的方法之一是經過繼承機制。繼承徹底能夠理解成類之間的類型和子類型關係。函數
須要注意的地方:繼承語法 class 派生類名(基類名)://... 基類名寫做括號裏,基本類是在類定義的時候,在元組之中指明的。ui
在python中繼承中的一些特色:spa
若是在繼承元組中列了一個以上的類,那麼它就被稱做"多重繼承" 。code
語法:對象
派生類的聲明,與他們的父類相似,繼承的基類列表跟在類名以後,以下所示:繼承
class SubClassName (ParentClass1[, ParentClass2, ...]): 'Optional class documentation string' class_suite
關於構造函數:索引
一、若是子類中沒有定義 def __init__(),則會調用父類的構造函數。get
二、若是子類中定義了構造函數,則會自動覆蓋父類的構造函數。
三、若是想調用父類的構造函數,則須要加上 parent.__init__(self,***)。
關於方法的重寫:
class Parent: # 定義父類 def myMethod(self): print '調用父類方法' class Child(Parent): # 定義子類 def myMethod(self): print '調用子類方法' c = Child() # 子類實例 c.myMethod() # 子類調用重寫方法