python教程(九)之特性(1 建構函式)

2021-10-07 04:36:00 字數 1029 閱讀 2770

#特性,指的是python自身就擁有的方法,而不是需要程式設計者自己寫函式來實現

#建構函式,不同於普通方法,它將在物件建立後自動呼叫它們

class

foobar

:def

init

(self)

:pass

f=foobar(

)f.init(

)

#例如init這個類中的方法,如果你需要在物件中新增屬性並賦值,就需要呼叫這個方法

#而實際上並不需要,只要使用建構函式

from warnings import warn

class

person

:def

__init__

(self,person)

:try

: self.name=person.get(

"name"

,none

) self.age=person.get(

"age"

,none

)except exception as e :

warn(e)

defget_ingo

(self)

:try

:print

(self.name.title()+

"'s age is "

+self.age)

except exception as e :

warn(e)

person1=

a=person(person1)

a.get_ingo(

)#bob's age is 12

#順便回憶一下之前學過的類和異常(v)

#這裡的__init__就是建構函式的方法,並且不需要物件再呼叫這個方法

python教程(九)之特性(3 函式super)

super 呼叫這個函式時,將當前類和當前例項作為引數 對其返回的物件呼叫方法時,呼叫的是超類 例如之前的bird 而不是當前類 所以在songbird的建構函式中,可以使用super songbird,self 在python3中,super可不提供任何引數 class bird def 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...