gpt4 book ai didi

python - 在 python 2.7 中调用超子类

转载 作者:行者123 更新时间:2023-11-28 21:04:40 25 4
gpt4 key购买 nike

我正在尝试了解 python 中的一些基本 OOP。如果我尝试子类化一个像列表这样的类,我该如何调用父构造函数?修修补补后,我发现它是:

super(subclass_name, self).__init__(args). 

但是我并没有直观地理解这一点。为什么我不能只做 list(args)?或

list.__init__(args)? 

以下是相关片段:

class slist(list):
def __init__(self, iterable):
#super(slist, self).__init__(iterable) <--- This works)
list.__init__(iterable) # This does not work
self.__l = list(iterable)

def __str__(self):
return ",".join([str(s) for s in self.__l])

最佳答案

list.__init__(iterable) 缺少要初始化的 which 列表的信息,list(iterable) 构建了一个完全不同的列表与您要初始化的对象无关。

如果你不想使用super,你可以做list.__init__(self, iterable)

关于python - 在 python 2.7 中调用超子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45000525/

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