如何在Python中从超类创建子类?

如何在Python中从超类创建子类?

在本文中,我们将讨论如何在Python中从超类创建子类。在进一步处理之前,让我们理解什么是类和超类。

是一个用户定义的模板或原型,用于创建对象。类提供了一种打包功能和数据的方法。创建对象类型的新实例的能力得以实现,因为新类的产生。

每个类的实例都可能有与之连接的属性,以保留其状态。类实例还可以包含更改其状态的方法,这些方法由其类定义。

更多Python相关文章,请阅读:Python 教程

语法

用于类的语法为 –

class NameOfClass:
    # 语句

例子

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):
      #调用超类
      super().__init__('Reptile')
      print('爬行动物是冷血的)
snake=Reptile()

输出

上述代码的输出如下 –

Animal Type: Reptile
爬行动物是冷血的

例子

以下示例说明了在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 –

# 选取 5 和 9 作为宽度和高度
>>> x=Games(5,9)
>>> x.area
50

示例

使用 super() 进行单一继承

以 Cat_Family 为例。Cat_Family 包括 Feline、Tigers 和 Lynx。它们还有共同的特征,如:

  • 他们是趾行动物。
  • 他们的前足有五个脚趾,后足有四个脚趾。
  • 他们无法察觉甜味。

因此,Feline、Tiger 和 Lynx 都是 Cat_Family 类的子类。因为从单个父类继承了众多的子类,这是单一继承的示例。

class Cat_Family:
   # 初始化构造函数 
   def __init__(self):
      self.digitigrade = True
      self.ToesOnForefeet = 5
      self.ToesOnHindfeet = 4
      self.LackSweetTasteReceptor = True
   def isDigitigrade(self):
      if self.digitigrade:
         print("它是趾行动物。")
   def LackOfSweetnessTste(self):
      if self.LackSweetTasteReceptor:
         print("它不能察觉甜味。")

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("前后脚都有脚趾。")

# 主代码
Pet = Feline()
Pet.isDigitigrade()
Street = Tigers()
Street.hasToesOnForefeetAndHindfeet()

输出

以下是以上代码的输出 −

它是趾行动物。
前后脚都有脚趾。

Python super() 方法的应用和限制

Python 中的 Super() 方法具有两个主要应用 −

  • 允许我们避免明确地使用基类名称。
  • 处理多重继承

super 函数有以下三个限制 −

  • super 函数引用的类及其方法
  • 调用的函数参数应与 super 函数的参数匹配。
  • 在使用后,必须在每个方法实例中包括 super()。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程