次の方法を使用して、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
過剰なコードのこの問題は、構造内を再帰的に反復するときにさらに明らかになります。コードをより簡潔/pythonicにするために、同じアクションをよりコンパクトに実行する別の方法はありますか?