python python的方法覆蓋

2021-06-07 21:59:38 字數 786 閱讀 4055

之前一直以為在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 這裡的...