我正在测试一个非常简单的python脚本。函数的作用对我的问题并不重要,我的问题是以下代码以某种方式给了我:
File "test.py", line 13, in traverse
if root.val > minVal and ans > root.val:
UnboundLocalError: local variable 'ans' referenced before assignment
但是我确实定义了ans
,为什么它不抱怨minVal
,而是抱怨ans
?你知道吗
class Test(object):
def findSecondMinimumValue(self, root):
"""
:type root: TreeNode
:rtype: int
"""
minVal = root.val
ans = float("inf")
def traverse(root):
if not root:
return
if root.val > minVal and ans > root.val:
ans = root.val
traverse(root.left)
traverse(root.right)
traverse(root)
return ans if ans != float("inf") else -1
在函数
traverse
中定义了一个新变量ans,它与上面定义的ans无关。如果要使用相同的变量,请将nonlocal ans
放在traverse
函数的顶部。你知道吗相关问题 更多 >
编程相关推荐