我目前正在进行XML(SVG)遍历并遇到下一个问题:
我的函数总是在之后返回None if currNode.parentNode is rootNode:
,但是,正如您在下面的代码中看到的那样,我已明确设置返回'flag',这是非空字符串.
这里最有趣的部分是print('...')
打印三个点,所以问题就在那里(或至少看起来像那样).
根据Python文档:'如果存在表达式列表,则对其进行评估,否则替换为None.'
所以,简而言之,问题是:
为什么'return'不会返回'flag'字符串,而是'None'而不是?
这是这段代码:
def relsLookup(currNode, rootNode): if currNode.nextSibling is not None: currNode = currNode.nextSibling return currNode elif currNode.nextSibling is None: if currNode.parentNode is rootNode: flag = 's2s_exception_end_of_svg' print('...') return flag elif currNode.parentNode.localName == 'g': if currNode.parentNode.nextSibling is not None: print('<--') currNode = currNode.parentNode.nextSibling return currNode elif currNode.parentNode.nextSibling is None: print('<--') currNode = currNode.parentNode relsLookup(currNode, rootNode) else: flag = 's2s_exception_unknown_parent' return flag else: flag = 's2s_exception_unknown_sibling' return flag