首页 > 解决方案 > 在python子类中调用超类方法

问题描述

我是 Python 新手,我在网上阅读了很多示例来调用超类方法子类,但没有一个对我有用,请找到我拥有的包结构

F (director)
---1. __init__.py 
---2.A.py
---3.B.py

内容如下

1__init__.py

is empty

2.A.py

class A:

 def hi(self,name):
   print ("hi",name)

3.B.py

from F.A import A
class B(A):

 def testhi(self,name):
    super().hi(name)
    super(B,self).hi(name)
    super(self).hi(name)
    A.hi(self,name)

x= B()
x.testhi("python")  

他们都没有工作我总是收到错误消息'super' object has no attribute 'hi'

标签: pythoninheritancemultiple-inheritance

解决方案


感谢@MichaelButscher,方法hi与A类处于同一级别,导致它不是类实例级别的方法。解决这个问题解决了这个问题。


推荐阅读