1.類變數的用途:大家公用的屬性,節省開銷(記憶體) 2.析構函數 在實例釋放和銷毀的時候執行的,通常用於做一些收尾工作,如關閉一些資料庫鏈接和打開的臨時文件 3.私有方法兩個下劃線開頭,聲明該方法為私有方法,不能在類地外部調用。 4.私有屬性兩個下劃線開頭,聲明該屬性為私有,不能在類地外部被使用或直 ...
1.類變數的用途:
大家公用的屬性,節省開銷(記憶體)
2.析構函數
在實例釋放和銷毀的時候執行的,通常用於做一些收尾工作,如關閉一些資料庫鏈接和打開的臨時文件
3.私有方法
兩個下劃線開頭,聲明該方法為私有方法,不能在類地外部調用。
4.私有屬性
兩個下劃線開頭,聲明該屬性為私有,不能在類地外部被使用或直接訪問。
5.
繼承的時候重寫構造函數要先將父類的所有參數寫一遍加上子類變數,然後調用父類,再添加子類的實例化變數。
6.
python2.x 經典類是按深度有先來繼承的,新式類是按廣度有先來繼承的。
python3.x 經典類和新式類都是統一按廣度優先來繼承的。
練習
1 #父類1 2 class Person(object): #新式寫法 3 4 def __init__(self,name,age): 5 #構造函數 6 self.name = name #實例化變數(靜態屬性) ,作用域為實例化本身 7 self.age = age 8 self.friends = [] 9 10 def eat(self): # 類方法 功能(動態屬性) 11 print('%s will eat something ! '%self.name) 12 13 def run(self): 14 print('%s will runing !'%self.name) 15 16 def sleep(self): 17 print('%s will sleep !'%self.name) 18 19 #父類2 20 class Relation(object): 21 def make_friends(self,obj): 22 print('%s make friend with %s'% (self.name,obj.name)) 23 self.friends.append(obj) #這裡傳的參數是obj,在這例題里 obj既是 w1 24 25 26 #子類 27 class Man(Person,Relation): #多繼承 28 def __init__(self,name,age,money): #重寫構造函數 29 #Person.__init__(self,name,age,money) #經典寫法 30 super(Man,self).__init__(name,age) #新式寫法,建議用這種寫法 31 self.money = money 32 33 def piao(self): 34 print('%s is piaoing .......'% self.name) 35 36 37 #子類 38 class Woman(Person,Relation): #多繼承 39 def piao(self): 40 print('%s is piaoing .......'% self.name) 41 42 m1 = Man('張三',20,10) 43 44 w1 = Woman('lili',21) 45 46 m1.make_friends(w1) 47 print(m1.friends[0].name) 48 print(m1.friends[0].age) 49 50 # m1.piao() 51 # m1.eat() 52 # m1.run() 53 # m1.sleep()