Python自定义Dolls类调用detail方法后输出多余None值问题咨询
问题产生原因
你定义的detail方法内部已经执行了打印操作,且没有显式声明返回值,Python中所有无显式return的函数默认返回None。你在调用时写了print(obj_1.detail()),执行逻辑是:先运行detail方法内部的两次print输出玩偶信息,再把detail方法默认返回的None打印出来,这就是多余None的来源。
解决方法
两种方案二选一即可:
- 方案1:直接调用
detail方法,不要外层套print。因为detail本身已经负责输出内容,不需要再打印它的返回值,把所有print(obj_x.detail())改成obj_x.detail()即可。 - 方案2:修改
detail方法的逻辑,不内部执行打印,而是返回需要输出的完整字符串,由外层print打印:
def detail(self): return f"Doll : {self.name}\nTotal Price : {self.price}"
修改后原有的print(obj_x.detail())写法可以正常运行,不会输出多余None。
内容的提问来源于stack exchange,提问作者Ononto
相关产品推荐
相关产品推荐

