python繼承,調用父類屬性方法
在python里面,繼承一個類只需要這樣寫:
classAnimal:
defheshui(self):
print('動物正在喝水')
classCat(Animal):
pass
這樣Cat就有了Animal的所有屬性和方法,調用的時候直接調用就可以了:
#接上面代碼
cat=Cat()
cat.heshui()
>>>動物正在喝水
這個時候,如果子類想重寫父類的方法,可以直接重寫:
classAnimal:
defheshui(self):
print('動物正在喝水')
classCat(Animal):
defheshui(self):
print('貓正在喝水')
cat=Cat()
cat.heshui()
>>>貓正在喝水
如果想調用父類的heshui這個方法,可以用super():
classAnimal:
defheshui(self):
print('動物正在喝水')
classCat(Animal):
defheshui(self):
super().heshui()
cat=Cat()
cat.heshui()
>>>動物正在喝水
強制調用父類私有屬性方法
如果父類的方法是私有方法,如def__heshui(self)這樣的話再去調用就提示沒有這個方法,其實編譯器是把這個方法的名字改成了_Animal__heshui(),如果強制調用,可以這樣:
classAnimal:
def__heshui(self):
print('動物正在喝水')classCat(Animal):
defheshui(self):
super()._Animal__heshui()
cat=Cat()
cat.heshui()>>>動物正在喝水
最后,如果自己也定義了__init__方法,那么父類的屬性是不能直接調用的:
classAnimal:
def__init__(self):
self.a='aaa'
classCat(Animal):
def__init__(self):
pass
cat=Cat()
print(cat.a)
>>>AttributeError:'Cat'objecthasnoattribute'a'
那么可以在子類的__init__中調用一下父類的__init__方法,這樣就可以調用了:
classAnimal:
def__init__(self):
self.a='aaa'classCat(Animal):
def__init__(self):
super().__init__()#也可以用Animal.__init__(self)這里面的self一定要加上
cat=Cat()
print(cat.a)>>>aaa
以上內容為大家介紹了python培訓之可以繼承父類方法嗎,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。