之前一直以為在python裡是不能使用方法覆蓋的,結果後來發現可以,這裡寫乙個簡單的例子。
class a:
def test(self):
print "i'm a"
class b(a):
def test(self):
print "i'm b"
a = a()
b = b()
a.test()
b.test()
列印輸出和預想的一樣,輸出:
i'm a
i'm b
繼承類的test覆蓋了基類的test方法。
但是python中似乎是沒有方法過載的概念的,因為本身變數型別就不是強定義的。這裡還是乙個簡單的例子。
class a:
def test(self):
print "i'm a"
class b(a):
def test(self):
print "i'm b"
def test(self, ia):
print "%d" % ia
a = a()
b = b()
a.test()
#b.test()
b.test(3)
注釋掉的b.test()會報錯,提示是必須輸入兩個引數,但是實際上只輸入了乙個,即def test(self)被def test(self, ia)給覆蓋了,很奇怪這種寫法上不會報錯,只是在呼叫的時候才報錯。
Python Python的類 物件 屬性 方法
python中一切皆為物件,所謂物件 我自己就是乙個物件,我玩的電腦就是物件,坐著的椅子就是物件,家裡養的小狗也是乙個物件。我們通過描述屬性 特徵 和行為來描述乙個物件的。比如家裡的小狗,它的顏色,大小,年齡,體重等是它的屬性或特徵。它會汪汪叫,會搖尾巴等是它的行為。我們在描述乙個真實物件 物體 時...
魔術方法 python python的魔術方法
什麼叫魔術方法 在python中定義以雙下劃線開頭,有一些python自定義的函式,並且以雙下劃線為結尾的函式叫做魔法函式 classcompany object def init self,employee list self.employee employee listdef getitem s...
資料去重方法python python中去重的方法
在python中,有兩種方法進行去重 1 對於list資料,去重方式如下 a 原列表list origin的內容如下 list origin aaa ccc bbb aaa ddd bbb b 進行去重,獲得新的列表new list new list list set list origin 這裡的...