Python 如何从超类创建一个子类

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()完成单继承

以猫科动物为例。猫科动物包括猫科、老虎和猞猁。它们之间也有一些共同特征,如:

  • 它们是趾行动物。
  • 它们前脚有五个脚趾,后脚有四个脚趾。
  • 它们无法感知甜味。

因此,猫科、老虎和猞猁都是猫科动物类的子类。由于从一个单一父类继承了多个子类,这是单继承的一个示例。

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()。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程