Python OOP代码调用add_item方法打印出None的问题排查
问题原因
Python中,没有显式return语句的函数/方法默认返回None。你的add_item方法只执行了添加商品到购物车的操作,没有定义返回值,所以当你用print(cart.add_item(product1))调用时,会打印出这个方法的默认返回值None。
解决方法
有两种可选方案:
直接调用
add_item,不要用print包裹
修改代码中的调用部分即可:cart.add_item(product1) cart.add_item(product2) cart.add_item(product3) print(cart.view_cart())这样只会打印
view_cart返回的商品数量,不会输出None。给
add_item方法添加自定义返回值
如果需要在添加商品后得到反馈,可以修改add_item方法:def add_item(self, product): self.items.append(product) return f"已成功添加商品:{product.name}" # 也可返回True表示操作成功此时用
print调用该方法,就会打印你指定的返回内容,而非None。
另外注意:Client类的__init__方法里,balance被拼写成了balace,虽然不影响当前问题,但建议修正避免后续出现逻辑错误。
内容的提问来源于stack exchange,提问作者gginchev
相关产品推荐
相关产品推荐

