#特性,指的是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...