Bonjour,
Je ne maîtrise visiblement pas pas bien l'utilisation des attributs de classe.
Je souhaite crée une classe, dont les instances seront automatiquement numérotés. (une instance aura un attribut numéro)
Mais je souhaite qu'on puisse aussi attribuer un numéro arbitraire à une instance.
Voila ce que j'avais fait :
compteur s'incrémente bien mais les attributs numéros restent à 1. Je ne comprends pas pourquoi.
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
16
17 class Exemple : compteur = 1 def __init__(self, numéro= compteur): self.numéro = numéro Exemple.compteur += 1 def getnum(self) : print(self.numéro) for i in range(4) : L = [0,0,0,0] print(Exemple.compteur) L[i] = Exemple() L[i].getnum()
Question supplémentaire : je ne comprends pas trop non plus comment faire appel à un attribut de classe dans la classe et en dehors de la classe :
classe.attribut semble marcher à l'intérieur et à l'extérieur d'une classe
self.__class__.attribut marche dans la classe, (je me demande du coup à quoi sert cette notation)
attribut tout court ne semble marcher nulle part...
c'est bien ça ?
Partager