Bonjour

Je suis actuellement plongé dans l'excellent livre "Apprendre à programmer avec Python 3" de G.S. A la page "espaces de noms des classes et instances" il est écrit que :
--- Chaque classe possède son espace de noms (contenant les variables de classe), et chaque objet instance possède son espace de noms (contenant les variables d'instance).
--- Les instances peuvent utiliser, mais pas modifier, les variables de classe.

J'ai du mal à comprendre ce dernier point car en exécutant ce script :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
class Bidon(object):
    """essais de portée des variables"""
    var1 = 11       
 
print(Bidon.var1)       # Variable de classe ?
 
obj1 = Bidon()
obj1.var1 = 0           # Variable d'instance ?
print(obj1.var1)        # La variable d'instance est modifiée
 
print(Bidon.var1)       # et la variable de classe aussi
 
obj2 = Bidon()          # D'ailleurs les nouveaux objets ne sont plus
print(obj1.var1)        # instanciés avec la même valeur de var1
... on constate que la variable Bidon.var1 a été modifiée par l'instance obj2.