Astuce pour accès aux variables globales depuis une fonction
D'accord, je sais, c'est mieux d'éviter les variables globales mais enfin c'est quand même parfois utile.
Voilà donc une méthode triviale à laquelle je viens de penser, que je trouve plutôt élégante et dont je voulais vous faire part.
Au lieu d'écrire :
Code:
1 2 3 4 5 6 7 8 9 10 11
| a = 1
b = 2
def func1():
global a
print a
def func2():
global a
global b
print a, b |
Je propose d'écrire :
Code:
1 2 3 4 5 6 7 8 9
| class globals:
a = 1
b = 2
def func1():
print globals.a
def func2():
print globals.a, globals.b |
Le principal intérêt que je vois c'est d'éviter de se mélanger les pinceaux avec des variables locales sachant que bien sûr le préfixe "globals." ne peut pas être omis.