class Node:
def __init__(self,parent = None):
self.parent = parent
self.children = []
def AddNode(self):
self.children.append(Node(self))
def getIndex(self):
return self.parent.children.index(self)
a = Node()
b = a.AddNode()
print b.getIndex()
在如上所述的对象树中,孩子在父母的孩子中找到其索引的最佳方式是什么?我正在使用self.parent.children.index(self)
,但这看起来很扭曲。还有更好的方法吗?
答案 0 :(得分:1)
一个人:这不太有效,因为 AddNode 不会返回任何内容。 除此之外你做的很好。只要你对索引进行按需(懒惰)检索,这就是一种直接的方法。如果你想要更直接的东西,我建议你在 AddNode 中链接孩子时存储索引。
class Node:
def __init__(self,parent = None):
self.parent = parent
self.children = []
self.child_index = None
def AddNode(self):
new_child = Node(self)
self.children.append(new_child)
new_child.child_index = self.children.index(new_child)
return new_child
def getIndex(self):
return self.child_index
a = Node()
b = a.AddNode()
c = a.AddNode()
d = a.AddNode()
print d.getIndex()
print c.getIndex()
print b.getIndex()
输出( booooorrriiinnngg ):
2
1
0