python类的继承-1
生活随笔
收集整理的這篇文章主要介紹了
python类的继承-1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 #!/usr/bin/python3
2
3 #類定義
4 class people:
5 #定義基本屬性
6 name = ''
7 age = 0
8 #定義私有屬性,私有屬性在類外部無法直接進行訪問
9 __weight = 0
10 #定義構造方法
11 def __init__(self,n,a,w):
12 self.name = n
13 self.age = a
14 self.__weight = w
15 def speak(self):
16 print("%s 說: 我 %d 歲。" %(self.name,self.age))
17
18 #單繼承示例
19 class student(people):
20 grade = ''
21 def __init__(self,n,a,w,g):
22 #調用父類的構函,否則繼承自people的student將沒有n、a、w屬性!!!!!!!!!!!!!!!
23 people.__init__(self,n,a,w)#
24 self.grade = g
25 #覆寫父類的方法
26 def speak(self):
27 print("%s 說: 我 %d 歲了,我在讀 %d 年級"%(self.name,self.age,self.grade))
28
29
30
31 s = student('ken',10,60,3)
32 s.speak()
參考:
http://blog.csdn.net/goodluckac/article/details/53100957
http://www.runoob.com/python3/python3-class.html
結果是:
?
若是上述代碼沒有第23行,代碼如下:
1 #!/usr/bin/python3 2 3 #類定義 4 class people: 5 #定義基本屬性 6 name = '' 7 age = 0 8 #定義私有屬性,私有屬性在類外部無法直接進行訪問 9 __weight = 0 10 #定義構造方法 11 def __init__(self,n,a,w): 12 self.name = n 13 self.age = a 14 self.__weight = w 15 def speak(self): 16 print("%s 說: 我 %d 歲。" %(self.name,self.age)) #其實也可以用people.age訪問類屬性,但是此時實例化后調用此句時類屬性age的值為0。 17 18 #單繼承示例 19 class student(people): 20 grade = '' 21 def __init__(self,n,a,w,g): 22 #調用父類的構函 23 #people.__init__(self,n,a,w) 24 self.grade = g 25 #覆寫父類的方法 26 def speak(self): 27 print("%s 說: 我 %d 歲了,我在讀 %d 年級"%(self.name,self.age,self.grade)) 28 29 30 31 s = student('ken',10,60,3) 32 s.speak()結果為:
name為空,age為0,這不是直接繼承的父類people的屬性 ??name = '' ? ?age = 0 ? ?么,也就是第31行?
s = student('ken',10,60,3) name和age只是傳遞到了子類student中,子類由于繼承了父類的屬性和方法,但父類的初始化(構造函數)函數卻沒有被自動執行。?
?
參考:
http://blog.csdn.net/goodluckac/article/details/53100957
http://www.runoob.com/python3/python3-class.html
轉載于:https://www.cnblogs.com/zhubinglong/p/6935295.html
總結
以上是生活随笔為你收集整理的python类的继承-1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初探 Headless Chrome
- 下一篇: mysql对数据库的备份和还原