[英]Python return statement doesn't break for loop
我想遍歷 XML 結構。 我的代碼似乎有效。 我檢查了調試器,看到它到達了return
,但for
循環繼續。
期待您的建議,謝謝!
def get_value(root, item):
for node in root:
if node.tag == item:
return node.tag
else:
get_value(node, item)
return 'Item not found in XML'
這里的問題是,您正在調用相同的函數是 else 語句。 所以,如果它進入 else 塊,它可能會遞歸地進行。 嘗試修改您的代碼,避免從內部調用該函數。 此外,您可能需要將 return 放在 for 循環中,如下突出顯示
def get_value(root, item):
for node in root:
if node.tag == item:
return node.tag
else:
get_value(node, item) ---> This is the problem
return 'Item not found in XML'
當您開始遞歸調用時,您忘記了return
語句。 這意味着它將永遠持續下去,直到達到最大遞歸限制或內存不足為止。
像這樣改變你的代碼
def get_value(root, item):
for node in root:
if node.tag == item:
return node.tag
else:
return get_value(node, item)
return 'Item not found in XML'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.