python類的繼承
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
python類的繼承是什麼?一起來看看小編今天的分享吧。
python類的繼承可以理解成類之間的父類和子類型關係,假如我需要定義幾個類,而類與類之間有一些公共的屬性和方法,這時我就可以把相同的屬性和方法作為基類的成員,而特殊的方法及屬性則在本類中定義。這樣子類只需要繼承基類(父類),子類就可以訪問到基類(父類)的屬性和方法了,它提高了代碼的可擴展性和重用行。
如下定義一個動物類Animal為基類,它基本兩個實例屬性name和age、一個方法call。
python3中所有類都可以繼承於object基類。
class Animal(object): def __init__(self, name, age): self.name = name self.age = age
def call(self): print(self.name, '會叫')
現在我們需要定義一個Cat 貓類繼承於Animal,貓類比動物類多一個sex屬性。
class Cat(Animal): def __init__(self,name,age,sex): super(Cat, self).__init__(name,age) self.sex=sex
不要忘記從Animal類引入屬性。
if __name__ == '__main__': c = Cat('喵喵', 2, '男') c.call()
單模塊被引用時下面代碼不會受影響,用於調試,Cat繼承了父類Animal的屬性,輸出 喵喵 會叫 ,Cat繼承了父類Animal的方法。
注意:一定要用 super(Cat, self).__init__(name,age) 去初始化父類,否則,繼承自 Animal的 Cat子類將沒有 name和age兩個屬性。
函數super(Cat, self)將返回當前類繼承的父類,即 Animal,然後調用__init__()方法,注意self參數已在super()中傳入,在__init__()中將隱式傳遞,不能再寫出self。