Je suis en train de tester un script python très simple. Qu'est-ce que la fonction n'est pas important à ma question, ma question est le code suivant me donne en quelque sorte:Python Variable Scope, variable référencée avant affectation
File "test.py", line 13, in traverse
if root.val > minVal and ans > root.val:
UnboundLocalError: local variable 'ans' referenced before assignment
Mais je n'ai ans
défini, pourquoi il ne se plaint pas minVal
mais ne ans
à propos?
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
Vous affectez à 'ans = ...' comme résultat, Python voit 'ans 'dans la fonction' traverse' comme local. Notez que cette affectation n'a aucune utilité ici, puisque vous ne définissez qu'une référence. –
Ah, comme je suis vidée, merci pour votre réponse, je l'ai maintenant! – user2002692