【发布时间】:2020-10-14 16:29:09
【问题描述】:
我知道这个主题已经详细讨论过,但我的用例有些特殊。
问题描述:我正在尝试分析具有多个层的树。每层可能由元素组成,这些元素在访问时可能包含更多可扩展元素(列表)或只是一个简单元素(非列表)。基本上它就像 Windows / Linux 文件夹和文件系统。也许以下架构将有助于更好地理解我所指的内容:
[Parent_Element]
|
+ [Element 1]
|
+ [Subelement 1.1]
+ Subsubelement 1.1.1
|
+ [hello_world]
|
Subsubsubelement 1.1.2.1
|
Subsubsubelement 1.1.2.2
|
+ Subsubelement 1.1.3
|
+ [Subelement 1.2]
|
+ Subsubelement 1.2.1
|
+ Subelement 1.3
|
+ [Element 2]
|
+ Subelement2.1
|
+ Element 3
我尝试使用以下代码,它部分按照我的预期工作。问题是我的代码在找到所需的“hello_world”搜索变量后也继续运行。第一次找到这个变量的时候能停止代码就好了。
def search_function(parent_element, search_variable = "hello_world"):
# Get elements of parent_element
elements = parent_element.get_elements()
#
# Check if Parent_Element has subelements
# TRUE: Parent_Element is LIST
# FALSE: Parent_Element is not a LIST
if isinstance(elements, list):
#
# Loop over each elem of the parent_element and
for elem in elements:
# Check if elem has the desired name
# TRUE: Save elem
if elem.get_display_name().to_string() == search_variable:
print("Search Successful!")
return elem
break
#
# FALSE: Keep on looking in the sub-elements
else:
search_function(elem)
break
else:
pass
#
【问题讨论】:
-
什么是“second_trial_function”?
-
抱歉,应该是 search_function()。谢谢,我会更新问题。