0
我正在測試一個非常簡單的python腳本。函數功能並不重要,我的問題,我的問題是下面的代碼以某種方式給我: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
因此,您將'ans = ...'指定爲'ans = ...',並將'traverse'函數中的'ans'視爲本地。請注意,此分配在此處沒有用處,因爲您只設置參考。 –
啊,我是如何轉儲,謝謝你的回答,我現在明白了! – user2002692