对于下面的代码,add_item中的库存会被绑定到函数中,就像这里详细介绍的那样。
class Person:
def __init__(self, name: str, inventory: List[Item] = []):
self.name = name
self.inventory = inventory
def add_item(self, item: Item):
self.inventory.append(item)
所以这就是发生的事情。
Dave.add_item(Book) # has Book
Mary.add_item(Apple) # has Book and Apple
所以我明白现在发生了什么 但我想让玛丽只拥有苹果,但我不知道如何修复它,这样就可以了。
再往下看,我发现做的是 self.inventory = []
工作,但这将阻止我在构造函数中初始化物品给人,而我想保留这一点,因为我的add_item方法一次只添加一个东西。
这样的东西是未来任何人寻找的答案。感谢@jasonharper在评论中的帮助。
def __init__(self, name: str, inventory: List[Item] = None):
if inventory == None:
self.inventory = []
else:
self.inventory = inventory