Python:类数据的继承(如果超类对象已经初始化)

Python:类数据的继承(如果超类对象已经初始化),python,oop,inheritance,Python,Oop,Inheritance,我面临着无法继承超类属性值的问题。我已经调用了超类构造函数,现在正在尝试签出继承的值 class base: def __init__(self, x): self.x = x print(self.x) class derive(base): def __init__(self): print(self.x + 1) print("base class: ") b = base(1)

我面临着无法继承超类属性值的问题。我已经调用了超类构造函数,现在正在尝试签出继承的值

class base:
    def __init__(self, x):
        self.x = x
        print(self.x)

class derive(base):
    def __init__(self):
        print(self.x + 1)


print("base class: ")
b = base(1)                           <-- Creating superclass instance 
print("derive class: ")
d = derived()                         <-- Inheriting. Failure.
类库:
定义初始化(self,x):
self.x=x
打印(self.x)
类派生(基):
定义初始化(自):
打印(self.x+1)
打印(“基类:”)

b=基(1)
b
d
不相关
b
完全是基类的一个单独实例

如果要调用重写的初始值设定项(
\uuuuu init\uuuu
),请使用访问它:

class derive(base):
    def __init__(self):
        super().__init__(1)
        print(self.x + 1)
请注意,仍然需要将参数传递给父类的初始值设定项。在上面的示例中,我为父初始值设定项的
x
参数传入一个常量值1


注意,我在这里使用了Python3特定的语法<没有参数的code>super()
在Python2中不起作用,在Python2中,您还需要使用
object
作为
base
类的父类,以使其成为一个新样式的类。

您需要从派生类调用基类
\uu init\uu
。关于这个问题,前面有很多问题。可能重复@shx2:这个问题的答案相当于Python 2特有的。@zero323:OP使用的是
print()
函数;出于这个原因,我坚持使用Python3。有时我觉得只有我使用了
print()
和Python2。x@zero323:不要,除非您使用来自未来导入打印功能的