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

2024-09-30 06:11:26 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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.

为什么我不能这么做?为了得到x属性,是否应该将底层对象显式地传递给继承对象?在


Tags: 对象instanceselfcreatingbase属性failureinit
1条回答
网友
1楼 · 发布于 2024-09-30 06:11:26

bd没有关联;b完全是基类的一个独立的实例。在

如果要调用重写的初始值设定项(__init__),请使用^{} proxy object来访问它:

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

请注意,您仍然需要将参数传递给父类的初始值设定项。在上面的例子中,我为父初始值设定项的x参数传入一个常量值1。在

注意,我在这里使用了python3的特定语法;super()不带参数在python2中不起作用,在python2中,您还需要使用object作为base类的父类,使其成为一个新样式的类。在

相关问题 更多 >

    热门问题