0
我创建了一个简单的类来管理相关对象的树:奇怪的Python类行为
class node(object):
children = list([])
def __init__(self, ID, *children):
self.ID = ID
for c in children:
self.children.append(c)
def add(self, *children):
for c in children:
self.children.append(c)
def __str__(self):
return self.ID
def __repr__(self):
print self.ID, len(self.children)
root = node('1')
root.add(node('1.1', node('1.1.1')),
node('1.2'))
for c in root.children:
print c
我越来越:
1.1.1
1.1
1.2
但是我期待只有1.1和1.2。我的错误是什么?
感谢, 梅德
谢谢本德尔,你是什么意思的是__repr__应以一定的格式返回?我的理解是它在打印类时使用,因此表示输出完全在开发中,并且不遵循特定的样式。我错过了什么?我是Python新手 – DmitrySemenov
@DmitrySemenov:这将有所帮助:http://stackoverflow.com/questions/1436703/difference-between-str-and-repr-in-python – Blender