Jul 03, 2024

Wiki

Python

Aide

edit SideBar

Search

Espace De Nom Des Classes

Trois niveaux de variables

Pour bien comprendre comment s'articulent les différents espaces de noms au-travers de la programmation objets en Python, il faut savoir qu'après l'instanciation d'un objet, on se retrouve avec trois niveaux de définition de variables :

  • les variables définies au niveau principal,
  • les variables (ou attributs) de la classe,
  • les variables (ou attributs) de l'instance.

Attributs de la classe

Chaque classe possède son propre espace de noms. Les variables qui en font partie sont appelées les attributs de la classe.

  >>> class toto:
  ...     unAttributDeClasse = None

Pour y accéder, utiliser . derrière le nom de la classe concernée :

  >>> toto.unAttributDeClasse = 5

Attributs de l'instance

Chaque instance (objet créé à partir d'une classe) obtient son propre espace de noms. Les variables qui en font partie sont appelées variables d'instance ou attributs d'instance.

  >>> class Toto:
  ...     unAttributDeClasse = 0
  ...     def __init__(self):
  ...         self.unAttributDInstance = 1

Pour y accéder : instancier un objet, et utiliser le . derrière son nom :

  >>> unToto = Toto()
  >>> unToto.unAttributDeClasse = 5   # l'objet unToto a les 
                                      # attributs de sa classe 
  >>> unToto.unAttributDInstance = 44 # ainsi que les siens propres

Remarquer que sans le self dans la méthode _init_, unAttributDInstance deviendrait une variable locale à la méthode, et n'aurait aucune existance à l'extérieur de __init :

  >>> class Toto:
  ...     def __init__(self):
  ...         pasUnAttributDInstance = 1
  ...
  >>> unToto = Toto()
  >>> unToto.pasUnAttributDInstance

  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
  AttributeError: Toto instance has no attribute 'pasUnAttributDInstance'

Règles de fonctionnement

Pour connaître les règles de fonctionnement des espaces de noms des trois niveaux de variables,

  • Chaque classe possède son propre espace de noms. Les variables qui en font partie sont appelées les attributs de la classe.
  • Chaque objet instance (créé à partir d'une classe) obtient son propre espace de noms. Les variables qui en font partie sont appelées variables d'instance ou attributs d'instance.
  • Les classes peuvent utiliser (mais pas modifier) les variables définies au niveau principal.
  • Les instances peuvent utiliser (mais pas modifier) les variables définies au niveau de la classe et les variables définies au niveau principal.

Pour des exemples illustrant cela, se rendre ici.

Page Actions

Recent Changes

Group & Page

Back Links