gpt4 book ai didi

python - 使用 super() 调用父类构造函数与使用父类名称

转载 作者:行者123 更新时间:2023-12-04 01:16:23 26 4
gpt4 key购买 nike

为什么当我尝试使用 super() 调用父类构造函数时,我不需要将“self”作为参数传递:

super().__init__(x,y)

然而,当我使用 Parent 类本身(在本例中名为 Parent)调用它时,需要传递一个“self”参数。

Parent.__init__(self,x,y)

(这里x和y是父类属性)

这里只是想了解一下背景逻辑。谢谢!

最佳答案

这是因为 super() 只能在类方法定义中调用(比如在 __init__ 中),而且它总是引用它自己。因此,没有必要,是多余的。

有趣的是,您提到它:self 几年前还需要(大概 5 次……我不记得了)。


把它想象成调用方法。如果我有以下类(class):

class Conversation:
def __init__(self):
pass
def hi(self, name):
print(f'How are you doing, {name}?')

convo = Conversation()
convo.hi('Jason')

(output): 'How are you doing, Jason?'

调用 convo.hi 时,我不必指定 self,只需将参数传递给 name。为什么?因为 self 总是需要的,因此是多余的。

super() 的想法相同。 :)


关于python - 使用 super() 调用父类构造函数与使用父类名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63290439/

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