Pour obtenir votre sortie revendiquée, votre code devrait être en retrait comme ceci:
class testGlobal:
a=2
print(a)
def change():
global a
a = 5
change()
print(a)
Les deux print
Les instructions sont exécutées alors que la classe est définie, à quel point les deux références à a
se rapportent à la classe variable a
, pas la variable global
a
que change
fait référence à.
Si vous êtes vraiment intéressé par les variables globales, vous n'avez pas du tout besoin de cette classe. Essayez le code suivant:
a = 2
print(a)
def change():
global a
a = 5
change()
print(a)
pouvez-vous corriger l'indentation – depperm
Quelle est la 'classe testGlobal:' pour? Cela n'a pas besoin d'être dans une classe, Python n'est pas Java. –
Vous n'avez pas besoin d'une classe externe pour ce problème ... –