我有一个关于Python中的类init函数的查询。我在试图创建一个文本冒险游戏类型的环境,每个房间都有一个“物品”属性,存储为一个列表。我试过如下:Python __init__函数的变量标识 - 任何人都可以解释吗?
教室:
def __init__(self,items=[]):
self.items=items
但是我发现这是每一个没有上开始定义的项目房间不仅得到一个空列表,但相同空的清单。现在,如果我创建了一堆房间并将其中的一个项目添加到其中一个项目中,则该项目会出现在每个房间中。
很容易修复(手动分配一个空的列表到每个房间),但我不明白为什么会发生这种情况。我会想象创建空间a会创建一个空的列表a.items,而b房间会创建b.items。但任何人都可以解释为什么这些会是相同的?有没有一种方法来产生上述函数的默认值,每次创建一个不同的列表?
干杯,
比利。