我使用以下方法迭代wxpythontreectrl的所有节点。在
def get_desired_parent(self, name, selectednode = None):
if selectednode == None:
selectednode = self.treeCtrl.RootItem
# First perform the action on the first object separately
childcount = self.treeCtrl.GetChildrenCount(selectednode, False)
if childcount == 0:
return None
(item,cookie) = self.treeCtrl.GetFirstChild(selectednode)
if self.treeCtrl.GetItemText(item) == name:
return item
while childcount > 1:
childcount = childcount - 1
# Then iterate over the rest of objects
(item,cookie) = self.treeCtrl.GetNextChild(item,cookie)
if self.treeCtrl.GetItemText(item) == name:
return item
return None
当我递归地在结构内部迭代时,这个多余代码的问题变得更加明显。 是否有另一种方法可以以更紧凑的方式执行相同的操作,从而使我的代码更加简洁。在
您可以使用此函数内部的函数(仅在其命名空间中),该函数将检查它是否与条件匹配。如果不返回,则继续。在
否则,您可以在
while
行之后检查您的条件。这样,item
变量将由循环之前的第一个子变量定义,并像其他子变量一样进行计算。在另一种方式:(或两者的混合)
相关问题 更多 >
编程相关推荐