A quoi sert de créer des classes si elles ne contiennent rien ? à priori à rien. La première tâche fréquente dans la définition des classes est souvent la définition de variables, comme pour toute autre structure. On appellera alors la variable "attribut" car elle devient une propriété liée en propre à l'objet et n'existe que dans son contexte.
class MaClasse : essai = "ok"
Notez au passage l'indentation car la classe agit comme un bloc d'instruction structuré. Il faudra donc être vigilant à ce niveau.
Essayons maintenant de l'instancier.
objet = MaClasse() print objet.essai
affiche
ok
Remarquez lors de l'instanciation, des parenthèses sont ajoutées au nom de la classe et aussi que pour faire référence à une propriété, il faut que :
pour vérifier le type il est toujours possible d'utiliser la méthode type :
type(MaClasse) <type 'classobj'>
Ainsi, l'attribut essai se retrouve associé à l'instance et il peut y avoir autant d'attributs du même type qu'il y a d'instances :
class MaClasse : essai = "ok" objet = MaClasse() print objet.essai > ok objet2 = MaClasse() print objet2.essai > ok objet2.essai = "wow" print objet2.essai, objet.essai > wow okNote : nous utiliserons régulièrement le signe > en début de ligne pour montrer ce que l'interpréteur renvoie. Cette pratique est inverse à l'interpréteur python mais nous permet, nous l'espérons, de rendre plus claire les lignes de codes qui nous intéressent.
On voit bien dans cet exemple que la valeur de l'attribut a pu être modifié dans le bloc principal avec une simple affectation et que pourtant, l'affectation ayant été effectuée dans le contexte d'une instance, seule la valeur associée à l'attribut de cette instance a été réellement affectée, l'autre instance n'ayant pas été modifiée le moins du monde.
Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.
Vous devriez rafraîchir la page.