# 超類 super(), 優雅的初始化類的屬性 #當對象B繼承了對象A時,對象B就擁有了對象A的所有方法和屬性.但是當我們需要給B()定義 一個初始屬性 ,就不能像方法A()一樣用__init__(self),因爲直接用 __init__(self)就相當 於重寫了父類的 初始化屬性 class A(): def __init__(self): self.first_name = 'king' def second_name(self): print('hao') class B(A): def __init__(self): super(B,self).__init__( ) self.english_name = 'horsun' def full_name(self): print('king hao')
-
父子關係:這種關係存在於某個類(subclass)是另一個類(superclass)的特別版本之中。通常描述爲“子類是一種父類”。比如:蛇是一種爬行動物(Snake is a kind of reptile)。其中,蛇(snake)是子類,爬行動物(reptile)是父類。蛇擁有爬行動物的特徵,同時,又擁有標誌自己是一條蛇的特徵。
-
類型實例關係:這種關係存在於兩個對象之中,其中一個對象(實例)是另一個對象(類型)的具體實現。我有一條寵物蛇叫Squasher,那麼Squasher就是蛇的一個實例。英文描述爲:"Squasher is an instance of snake"
兩個規則:
如果X是A的實例,同時A又是B的子類,那麼,X也是B的實例 。 如果B是M的實例,同時A是B的子類,那麼,A也是M的實例
比如你自定義了一個類myclass
,實例化就是在myclass
後增加()
操作符完成的。也就是instance_of_myclass=myclass()