python中关于super()函数的问题怎么解决(python,super(),开发技术)

时间:2024-05-03 09:50:05 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    python%E4%B8%AD%E5%85%B3%E4%BA%8Esuper%28%29%E5%87%BD%E6%95%B0%E7%9A%84%E9%97%AE%E9%A2%98%E6%80%8E%E4%B9%88%E8%A7%A3%E5%86%B3

执行结果:

AttributeError: ‘super’ object has no attribute ‘run1’

注意:

1、一个类继承多个类时,如果父类中没有提供该方法,类会通过__mro__属性一直向上搜索,如果直到object还没有搜索到该方法,那么将会引发AttributeError异常

输出结果为:playing;而不是working

注意:

1、super()函数的使用。
使用super()函数时,可以通过super(类名,self)来指定对哪个对象以哪个类为起点向上搜索父类中的方法。
例如:super(Person1,self).run():表示以Person1类为起点,向上搜索self(Person3的对象)的run方法。
Person1向上搜索到了<class &lsquo;main.Person2&rsquo;>,所以才会输出playing

2、print(Person3.mro)的继承顺序为:(<class &lsquo;main.Person3&rsquo;>, <class &lsquo;main.Person&rsquo;>, <class &lsquo;main.Person1&rsquo;>, <class &lsquo;main.Person2&rsquo;>, <class &lsquo;object&rsquo;>)

输出结果:

ACBD
(<class &lsquo;main.D&rsquo;>, <class &lsquo;main.B&rsquo;>, <class &lsquo;main.C&rsquo;>, <class &lsquo;main.A&rsquo;>, <class &lsquo;object&rsquo;>)

本文:python中关于super()函数的问题怎么解决的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:element中el-cascader如何使用下一篇:

4 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18