我正在跟随一个在线教程,代码如下:
class Hands(list):
def __init__(self, size=0, die_class=None, *args, **kwargs):
if not die_class:
raise ValueError("You must provide a die class")
super().__init__()
for _ in range(size):
self.append(die_class())
这基本上是用一些骰子(size
)和它们所持有的骰子(die_class
)来模拟玩家。
我困惑的是为什么我们需要调用super().__init__
?我尝试了没有它的代码,而且它也可以正常运行!为什么这个调用是必要的呢?
list
似乎不需要默认构造函数,但是如果下一个Python版本要求调用list
对象的__init__
呢?为什么不调用__init__
呢? - Jean-François Fabre