gpt4 book ai didi

python - super() 在 Python 3 中究竟返回什么?

转载 作者:太空狗 更新时间:2023-10-29 20:46:55 24 4
gpt4 key购买 nike

<分区>

来自 Python3 的文档 super() “返回一个代理对象,该对象将方法调用委托(delegate)给类型的父类或兄弟类。”这是什么意思?

假设我有以下代码:

class SuperClass():
def __init__(self):
print("__init__ from SuperClass.")
print("self object id from SuperClass: " + str(id(self)))

class SubClass(SuperClass):
def __init__(self):
print("__init__ from SubClass.")
print("self object id from SubClass: " + str(id(self)))
super().__init__()


sc = SubClass()

我从这里得到的输出是:

__init__ from SubClass.self object id from SubClass: 140690611849200__init__ from SuperClass.self object id from SuperClass: 140690611849200

这意味着在 super().__init__() 行中,super() 返回当前对象,然后将其隐式传递给父类(super class)' __init__() 方法。这是准确的还是我在这里遗漏了什么?

简单来说,我想了解以下内容:

super().__init__() 运行时,

  1. 传递给 __init__() 的到底是什么以及如何传递的?我们在 super() 上调用它,因此根据我目前对 Python 的了解,无论返回什么都应该传递给 __init__() 方法。
  2. 为什么我们不必将 self 传递给 super().__init__()

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com