如何在Python中從超類建立子類?
在本文中,我們將討論如何在Python中從超類建立子類。在繼續之前,讓我們瞭解什麼是類和超類。
一個類是使用者定義的模板或原型,從中建立物件。類提供了一種將功能和資料捆綁在一起的方法。透過建立新類,可以建立新物件型別的新例項。
類的每個例項都可以具有與其關聯的屬性來保持其狀態。類例項還可以包含由其類定義的方法,以更改其狀態。
語法
用於類的語法為:
class NameOfClass: # Statement
示例
class關鍵字表示建立類,後跟類名,即以下示例中的“Sports”:
class Sports: pass print ('Class created successfully')
輸出
以上程式碼的輸出如下:
Class created successfully
在Python子類中建立超類物件
super()函式提供對父類或同級類的方法和屬性的訪問。super()函式除了允許多重繼承外,還會返回一個表示父類的物件。
語法
語法如下:
Super()
它返回一個反映父類的代理物件,並且沒有引數。
示例
super()函式的示例如下:
class Mammal(object): def __init__(self, Mammal_type): print('Animal Type:', Mammal_type) class Reptile(Mammal): def __init__(self): # calling the superclass super().__init__('Reptile') print('Reptiles are cold blooded') snake = Reptile()
輸出
以上程式碼的輸出如下:
Animal Type: Reptile Reptiles are cold blooded
示例
以下示例解釋了在python中使用super()函式:
class Laptop(object): def __init__(self, breadth, height): self.breadth = breadth self.height = height self.area = 50 class Games(Laptop): def __init__(self, breadth, height): super(Games, self).__init__(breadth, height)
輸出
以下是以上程式碼的輸出,其中我們可以訪問Laptop.area:
# Picking up 5 and 9 for breadth and height respectively >>> x=Games(5,9) >>> x.area 50
示例
使用super()的單繼承
以Cat_Family為例。Cat_Family包括貓科動物、老虎和猞猁。它們也有一些共同的特徵,例如:
- 它們是趾行。
- 它們的前腳有五個腳趾,後腳有四個腳趾。
- 它們無法檢測甜味。
因此,貓科動物、老虎和猞猁是Cat Family類的子類。由於多個子類繼承自單個父類,因此這是一個單繼承的例子。
class Cat_Family: # Initializing the constructor def __init__(self): self.digitigrade = True self.ToesOnForefeet = 5 self.ToesOnHindfeet = 4 self.LackSweetTasteReceptor = True def isDigitigrade(self): if self.digitigrade: print("It is digitigrade.") def LackOfSweetnessTste(self): if self.LackSweetTasteReceptor: print("It cannot detect sweetness.") class Feline(Cat_Family): def __init__(self): super().__init__() def isMammal(self): super().isMammal() class Tigers(Cat_Family): def __init__(self): super().__init__() def hasToesOnForefeetAndHindfeet(self): if self.ToesOnForefeet and self.ToesOnHindfeet == 4: print("Has toes on forefeet and hind feet") # Driver code Pet = Feline() Pet.isDigitigrade() Street = Tigers() Street.hasToesOnForefeetAndHindfeet()
輸出
以下是以上程式碼的輸出:
It is digitigrade. Has toes on forefeet and hind feet
Python super()方法的應用和限制
Python中的Super()方法有兩個主要應用:
- 允許我們避免顯式使用基類名稱。
- 處理多重繼承
super函式有以下三個限制:
- super函式引用的類及其方法
- 被呼叫的函式的引數應該與super函式的引數匹配。
- 使用後,super()必須包含在方法的每個例項中。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP