当前位置: 首页 > 编程笔记 >

Python的super()如何与多重继承一起使用?

汝臻
2023-03-14
本文向大家介绍Python的super()如何与多重继承一起使用?,包括了Python的super()如何与多重继承一起使用?的使用技巧和注意事项,需要的朋友参考一下

在解释super() 之前,我们首先需要了解多重继承的概念。

多重继承:意味着一个子类可以继承多个父类。

在以下示例中,子类从父类继承了属性方法。

示例

class Father:
   fathername = ""
   def father(self):
   print(self.fathername)

class Mother:
   mothername = ""
   def mother(self):
   print(self.mothername)

class Child(Father, Mother):
   def parent(self):
   print("Father :", self.fathername)
   print("Mother :", self.mothername)

s1 = Child()s1.fathername = "Srinivas"
s1.mothername = "Anjali"
s1.parent()

输出结果

Father : Srinivas
Mother : Anjali


在下面的示例中,显示了(即)   super()具有多个继承

super() :super函数可用于替换对的显式调用

示例

class Father:
   fathername = ""
   def father(self):
   print(self.fathername)

class Mother:
   mothername = ""
   def mother(self):
   print(self.mothername)

class Child(Father, Mother):
   def parent(self):
   super().__init__()
   print("i am here")
   print("Father :", self.fathername)
   print("Mother :", self.mothername)

s1 = Child()s1.fathername = "Srinivas"
s1.mothername = "Anjali"
s1.parent()

当您运行程序时,输出将是

输出结果

i am here
Father : Srinivas
Mother : Anjali
 类似资料:
  • 问题内容: 我在使用Python进行面向对象的编程方面非常陌生,并且在理解函数(新样式类)时遇到困难,特别是在涉及多重继承时。 例如,如果你有类似的东西: 我不明白的是:该类会继承两个构造函数方法吗?如果是,那么哪个将与一起运行,为什么? 而如果要运行另一个呢?我知道这与Python方法解析顺序有关。 问题答案: Guido自己在他的博客文章(包括两次较早的尝试)中对此进行了合理的详细说明。 在你

  • 问题内容: 我只是在研究一些更高级的python主题(至少对我来说是高级的)。我现在正在阅读有关多重继承以及如何使用super()的信息。我或多或少了解超级函数的使用方式,但是 (1)像这样做是 怎么回事?: 关于super(),关于Python Warts的Andrew Kuchlings论文 说: 当Derived类继承自多个基类并且其中一些或全部具有 init 方法时,super()的用法也

  • 问题内容: 在Python中,如何选择要调用的Parent方法?假设我要调用父ASDF2的方法。似乎我必须在super()中指定 ASDF1 。如果要调用ASDF3 ,则必须指定 ASDF2 吗? 在我看来是疯子。我究竟做错了什么? 问题答案: 那不是为了什么 超级基本上是按照特定顺序选择一个(或全部)父母。如果您只想调用单亲方法,请执行此操作

  • 问题内容: 问题的简短摘要:我有一个父类,并由子类扩展。 该子类使用super调用Parent的构造函数: 我想知道是否可以在Grandchild类的构造函数中调用super()方法来扩展Child类: 问题答案: super()在继承上一级调用构造函数,如果存在无参数的构造函数,则将隐式调用该构造函数。 对象是从继承的最高层初始化的,在您的情况下是对象>父>子>孙。 从文档中:

  • 假设我有对象:bob1,cob2。我想为类B和C建立一个析构函数,但我不确定如何销毁B.BB和C.CC以及如何访问它们。还有,有没有办法让我做到这一点,而不让类成为a类的朋友?

  • 我是相当新的反应性编程,我使用去年Spring5 Webflux框架和玩这样的项目Reactor。我正面临一个问题,我想在继承模式中使用Mono: 我怎样才能做到这一点?我是不是做了坏事? 非常感谢