【发布时间】:2018-06-13 10:52:42
【问题描述】:
你好很棒的社区, 作为我课程的一部分,我正在学习使用 python 的 OOPS 概念。我在python中遇到多重继承问题。以下是我的代码:
#!/usr/bin/env python
class Base1(object):
def __init__(self):
self.base1var = "this is base1"
class Base2(object):
def __init__(self):
self.base2var = "this is base2"
class MainClass(Base1, Base2):
def __init__(self):
super(MainClass, self).__init__()
if __name__ == "__main__":
a = MainClass()
print a.base1var
print a.base2var
运行时出现以下错误
print a.base2var
AttributeError: 'MainClass' object has no attribute 'base2var'
如果我交换继承的类的顺序,错误中的变量名会相应改变。
我想调用两个继承类的构造函数时使用super()错了吗?
如何正确地从多个基类继承并使用主类中的变量和方法而不出现此错误?
谢谢。
【问题讨论】:
-
如果您想知道如何使用
super,请阅读rhettinger.wordpress.com/2011/05/26/super-considered-super正确。 -
谢谢@chepner。这很有价值。
-
FWIW, this answer by core dev Raymond Hettinger 有一些关于
super的好链接。
标签: python oop inheritance