python繼承
1.繼承,呼叫父類屬性方法
在python裡面,繼承一個類只需要這樣寫:
class Animal:
def heshui(self):
print('動物正在喝水')
class Cat(Animal):
pass
這樣Cat就有了Animal的所有屬性和方法,呼叫的時候直接呼叫就可以了:
#接上面程式碼
cat = Cat()
cat.heshui()
>>>動物正在喝水
這個時候,如果子類想重寫父類的方法,可以直接重寫:
class Animal:
def heshui(self):
print('動物正在喝水')
class Cat(Animal):
def heshui(self):
print('貓正在喝水')
cat = Cat()
cat.heshui()
>>>貓正在喝水
如果想呼叫父類的 heshui 這個方法,可以用 super() :
class Animal:
def heshui(self):
print('動物正在喝水')
class Cat(Animal):
def heshui(self):
super().heshui()
cat = Cat()
cat.heshui()
>>>動物正在喝水
2.強制呼叫父類私有屬性方法
如果父類的方法是私有方法,如 def __heshui(self) 這樣的話再去呼叫就提示沒有這個方法,其實編譯器是把這個方法的名字改成了 _Animal__heshui(),如果強制呼叫,可以這樣:
class Animal:
def __heshui(self):
print('動物正在喝水')
class Cat(Animal):
def heshui(self):
super()._Animal__heshui()
cat = Cat()
cat.heshui()
>>>動物正在喝水
最後,如果自己也定義了 init 方法,那麼父類的屬性是不能直接呼叫的:
class Animal:
def __init__(self):
self.a = 'aaa'
class Cat(Animal):
def __init__(self):
pass
cat = Cat()
print(cat.a)
>>>AttributeError: 'Cat' object has no attribute 'a'
那麼可以在 子類的 __init__中呼叫一下父類的 init 方法,這樣就可以呼叫了:
class Animal:
def __init__(self):
self.a = 'aaa'
class Cat(Animal):
def __init__(self):
super().__init__() #也可以用 Animal.__init__(self) 這裡面的self一定要加上
cat = Cat()
print(cat.a)
>>>aaa
相關文章
- python 繼承Python繼承
- python之繼承Python繼承
- python 基礎之繼承、重寫、多繼承Python繼承
- 【Python】python類的繼承Python繼承
- Python類的繼承Python繼承
- odoo 繼承(owl繼承、web繼承、view繼承)Odoo繼承WebView
- 什麼是繼承?Python繼承的特徵有哪些?繼承Python特徵
- Python 繼承 和 多型Python繼承多型
- 原型,繼承——原型繼承原型繼承
- 菱形繼承,虛繼承繼承
- python_類繼承例題Python繼承
- python3-----繼承 過載Python繼承
- 多繼承 與 多重繼承繼承
- Python的多重繼承如何使用?python教程Python繼承
- Python多重繼承注意事項!Python教程Python繼承
- Javascript繼承2:建立即繼承—-建構函式繼承JavaScript繼承函式
- Javascript繼承4:潔淨的繼承者—-原型式繼承JavaScript繼承原型
- Python中的繼承和多型Python繼承多型
- python高階語法:繼承性Python繼承
- 如何理解Python中的繼承?python入門Python繼承
- 繼承繼承
- C++中公有繼承、保護繼承、私有繼承的區別C++繼承
- Python 簡明教程 --- 21,Python 繼承與多型Python繼承多型
- day23:單繼承&多繼承&菱形繼承&__init__魔術方法繼承
- python:super()對多繼承的影響Python繼承
- 類的繼承_子類繼承父類繼承
- 10 #### 繼承繼承
- 多繼承繼承
- JavaScript繼承JavaScript繼承
- JavaScript 繼承JavaScript繼承
- javascript:繼承JavaScript繼承
- python3中新類如何繼承?Python繼承
- python3父類需要繼承object嗎?Python繼承Object
- python物件導向的繼承-組合-02Python物件繼承
- Python學習手冊之類和繼承Python繼承
- python繼承和重寫init方法--例項Python繼承
- Pyhon的繼承繼承
- 繼承問題繼承