为什么以下代码在我添加了几个项目后才返回空白?
class Con(list):
def __init__(self): pass
def __str__(self):
return ' '.join(self)
def add(self, value)
self.append(value)
i for i in range(10):
Con().add(i)
>>> print Con()
# empty space instead of:
0 1 2 3 4 5 6 7 8 9
我还要为我的课程定义什么才能像列表那样行事?
答案 0 :(得分:8)
您总是在循环的每次迭代中创建一个新的con实例。您必须在循环之前创建实例并添加到该实例。此外,您正在print语句中创建另一个新实例,因此它也将变为空。
答案 1 :(得分:5)
您每次通过循环调用Con
并在打印时再次调用Con()
创建11个c = Con()
for i in range(10):
c.add(i)
print c
实例。
你想要这样的东西:
{{1}}
答案 2 :(得分:2)
原因是你没有保存任何con的实例。在每个Con()
上创建一个新实例。你必须把它保存在那样的地方:
c = Con()
for i in range(10):
c.add(i)
>>> print c
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]