Le piège à con du jour : variables locales en python

January 27, 2012 by nono
Catégories geekeries - Mots-clés python

Note pour plus tard. Soit un bout de code python qui ressemble à ça:

mavariable = None

def fonction():
  if mavariable is None:
    mavariable = 'toto'
  blablabla()

Ne pas oublier que dans ce cas la variable mavariable est locale à la fonction à cause de l'assignation à l'intérieur du if. La preuve :

>>> fonction()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in fonction
UnboundLocalError: local variable 'mavariable' referenced before assignment

Grmpf.

Merci à Sam qui a fouillé dans la doc : c'est effectivement écrit .