我是python和OOPS的新手。如果book已存在于字典中,我期待我的模块add_book增加。请帮助我。不确定为什么循环不能按预期工作。
https://github.com/amitsuneja/Bookstore/commit/4aefb378171ac326aacb35f355051bc0b057d3be
答案 0 :(得分:1)
当您仍在迭代时,不应附加到列表中。此外,您的代码将为列表中已具有不同名称的每个项附加新项。相反,您应该使用for/else
循环。在这里,else
只会在循环中没有break
的情况下触发。
for recordlist in self.mybooksinventory:
if self.name == recordlist['name']:
recordlist['quantity'] += 1
break # break from the loop
else: # for/else, not if/else !
self.mybooksinventory.append({'name':self.name,'stuclass':self.stuclass,'subject':self.subject,'quantity':1})