#super 呼叫這個函式時,將當前類和當前例項作為引數
#對其返回的物件呼叫方法時,呼叫的是超類(例如之前的bird)而不是當前類
#所以在songbird的建構函式中,可以使用super(songbird,self)
#在python3中,super可不提供任何引數
class
bird
:def
__init__
(self)
: self.hungry=
true
defeat
(self)
:if self.hungry==
true
:print
("開始吃東西"
) self.hungry=
false
else
:print
("吃過了不餓"
)class
singbird
(bird)
:def
__init__
(self)
:super()
.__init__(
) self.sound=
"嚶嚶嚶"
defsing
(self)
:print
(self.sound)
a=singbird(
)a.sing(
)#嚶嚶嚶
a.eat(
)#開始吃東西
a.eat(
)#吃過了不餓
#即便有多個超類,也只需呼叫super一次,條件是所有超類的建構函式也使用super python教程(九)之特性(1 建構函式)
特性,指的是python自身就擁有的方法,而不是需要程式設計者自己寫函式來實現 建構函式,不同於普通方法,它將在物件建立後自動呼叫它們 class foobar def init self pass f foobar f.init 例如init這個類中的方法,如果你需要在物件中新增屬性並賦值,就需要...
python教程(九)之特性(5 生成器)
列表生成器可以生成我們需要的列表,但是有時候我們不需要一整個列表,只需要一部分 因為列表不僅占用記憶體,而且當我們需要處理它的時候經常需要進行迭代 活用生成器則會避開這個問題 a x x for x in range 10 print a at 0x00000000027f5e08 根據結果,我們一...
python教程(九)之特性(6 遞迴生成器)
試想一下,如果我想把 1,2 3,4 5 變為 1,2,3,4,5 需要做什麼 大致的辦法你應該可以很快想到,利用迴圈遍歷,如果是列表就拆開 那如果 1,2 3 4,5 甚至更多層,用迴圈還能處理的了嗎 遞迴會是你最好的選擇,利用我們之前學的生成器,我們可以更好地做到 def flatten arg...