派生類的定義如下所示:
classDerivedClassName(BaseClassName):
命名BaseClassName(示例中的基類名)必須與派生類定義在一個作用域內(nèi)。除了類,還可以用表達式,基類定義在另一個模塊中時這一點非常有用:
classDerivedClassName(modname.BaseClassName):
派生類的實例化沒有什么特殊之處:DerivedClassName()(示列中的派生類)創(chuàng)建一個新的類實例。方法引用按如下規(guī)則解析:搜索對應(yīng)的類屬性,必要時沿基類鏈逐級搜索,如果找到了函數(shù)對象這個方法引用就是合法的。派生類可能會覆蓋其基類的方法。因為方法調(diào)用同一個對象中的其它方法時沒有特權(quán),基類的方法調(diào)用同一個基類的方法時,可能實際上最終調(diào)用了派生類中的覆蓋方法。派生類中的覆蓋方法可能是想要擴充而不是簡單的替代基類中的重名方法。有一個簡單的方法可以直接調(diào)用基類方法,只要調(diào)用:BaseClassName.methodname(self,arguments)。
Python有兩個用于繼承的函數(shù):
函數(shù)isinstance()用于檢查實例類型:isinstance(obj,int)只有在obj.__class__是int或其它從int繼承的類型
函數(shù)issubclass()用于檢查類繼承:issubclass(bool,int)為True,因為bool是int的子類。但是,issubclass(unicode,str)是False,因為unicode不是str的子類(它們只是共享一個通用祖先類basestring)。
以上內(nèi)容為大家介紹了python的繼承,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。