我想在调用Nim游戏的repr()函数时打印它的状态信息。但是,我不知道如果repr()函数中没有循环,它将如何工作。你知道吗
class NimGame:
def __init__(self, listOfNumBalls):
self.listOfNumBalls = listOfNumBalls
def __repr__(self):
for num in range(len(self.listOfNumBalls)):
return "Heap {}: {} balls".format(num,self.listOfNumBalls[num])
对于“newGame=NimGame([1,2,3])”这样的游戏, 我希望它返回以下内容:
“堆1:1的球
堆2:2个球
堆3:3个球”
如果你回来-你就回来。for循环中任何尚未执行的循环都不会执行。你知道吗
构造完整字符串,返回:
输出:
当然,您可以在方法中使用} 结束调用,因此您的代码从不重复。其次,这不是^{} 的目的:
for
,就像任何其他代码一样。但是,您在这里犯了两个错误:首先,^{因此,对象的适当
repr
是"NimGame([1,2,3])"
,例如"NimGame({!r})".format(self.listOfNumBalls)
。你知道吗您尝试实现的方法更适用于
str
,类似于:“return”语句结束一段代码。因此,repr()函数只运行一次。相反,可以将其附加到字符串并在for循环后返回,如下所示:
这将显示打印时的预期输出。你知道吗
相关问题 更多 >
编程相关推荐