Python中打印Game对象显示内存地址,如何实现lives的操作与打印?
问题解决方案
1. 自定义对象打印内容
Python默认打印类实例时会输出内存地址,要让print(lives1)显示lives列表,只需在Game类中重写__str__方法,自定义输出格式:
class Game: def __init__(self, lives): self.lives = lives def push(self, num): self.lives.append(num) def pop(self): self.lives.pop() def peek(self): print(self.lives) # 添加__str__方法,返回lives列表的字符串形式 def __str__(self): return str(self.lives)
2. 修复代码拼写错误
你代码里的if (c == and):是笔误,and应为ans,否则会触发语法错误,修正后判断逻辑才能正常运行。
3. 完整修正代码
class Game: def __init__(self, lives): self.lives = lives def push(self, num): self.lives.append(num) def pop(self): # 可选:添加空列表判断,避免报错 if self.lives: self.lives.pop() else: print("无剩余lives可移除") def peek(self): print(self.lives) def __str__(self): return str(self.lives) lives = [0, 0, 0] lives1 = Game(lives) print(lives1) # 输出: [0, 0, 0] a = 5 b = 5 c = a + b print(a, "+", b, "= ") ans = int(input("Please write the answer:")) if c == ans: lives1.push(0) else: lives1.pop() print(lives1) # 输出操作后的lives列表
内容的提问来源于stack exchange,提问作者newbie
相关产品推荐
相关产品推荐

