提问人:user2415706 提问时间:6/9/2020 更新时间:6/10/2020 访问量:18
如何重写将默认输入更改为不这样做的类函数?
How do I rewrite a class function that mutates default input to not do so?
问:
对于下面的代码,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
所以我明白现在发生了什么,但我希望玛丽只有苹果,我不知道如何修复它才能工作。
进一步阅读该页面,我发现这样做是有效的,但这会阻止我将项目初始化到构建函数中的人,我想保留这些构造函数,因为我的add_item方法一次只添加一件事。self.inventory = []
答:
0赞
user2415706
6/10/2020
#1
对于任何展望未来的人来说,这样的事情都是答案。感谢@jasonharper在评论中的帮助。
def __init__(self, name: str, inventory: List[Item] = None):
if inventory == None:
self.inventory = []
else:
self.inventory = inventory
评论
[]
None
[]
.__init__()
def __init__(self, name: str, inventory: List[Item] = None): if inventory == None: self.inventory = [] else: self.inventory = inventory