Python 为什么这两个对象的id相同?

Python 为什么这两个对象的id相同?,python,python-3.x,class,inheritance,Python,Python 3.x,Class,Inheritance,在下面的代码中,为什么父项和子项的id相同?它们不应该有所不同吗 class Parent: def __init__(self): print(id(self)) class Child(Parent): def __init__(self): print(id(self)) super().__init__() Child() 您只创建了一个对象;它具有相同的ID,无论您是将其作为子对象查看,还是作为其继承的父对象查看。您只

在下面的代码中,为什么父项和子项的id相同?它们不应该有所不同吗

class Parent:
    def __init__(self):
        print(id(self))

class Child(Parent):
    def __init__(self):
        print(id(self))
        super().__init__()
Child()

您只创建了一个对象;它具有相同的ID,无论您是将其作为子对象查看,还是作为其继承的父对象查看。

您只创建了一个对象;它具有相同的ID,无论您是将其作为子对象查看,还是作为其继承的父对象查看。

根据定义,
self
是对实例的引用,因此,它必须始终是相同的。
super
的使用掩盖了
子对象的事实。
初始化
实际上只是调用
父对象。
初始化
,将它作为参数接收的相同对象传递给
父对象。
初始化
。根据定义,
self
是对实例的引用,所以它必须总是一样的。
super
的使用掩盖了这样一个事实,即
Child.\uuuu init\uuuu
实际上只是调用
Parent.\uuu init\uuuuuu(self)
,将它作为参数接收到的相同对象传递给
Parent.\uu init\uuu