Bonjours à tous, et désolé pour le titre peu descriptif, mais je n'ai pas trouvé mieux.
Je suis expérimenté en programmation objet, mais pas trop en Python.
Voici un exemple de code:
Et voici son résultat:
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
18
19
20
21
22
23
24
25
26
27 class Simple: varsList = [] class Lister: simplesList = [] def __init__(self): for counter in range(0, 13): if (counter%2) == 0: simple = Simple() self.simplesList.append(simple) simple.varsList.append(counter) # Main program lister = Lister() for list in lister.simplesList: print list print list.varsList
Seulement, je m'attendais à ça:
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 <__main__.Simple instance at 0x00A87148> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] <__main__.Simple instance at 0x00A87170> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] <__main__.Simple instance at 0x00A87198> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] <__main__.Simple instance at 0x00A871C0> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] <__main__.Simple instance at 0x00A871E8> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] <__main__.Simple instance at 0x00A87210> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] <__main__.Simple instance at 0x00A87238> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
[0, 1]
[2, 3]
[4, 5]
[6, 7]
[8, 9]
[10, 11]
[12, 13]
On voit que simple = Simple() crée bien une nouvelle instance (les adresses des instances sont différentes), mais pourquoi diable, toutes les instances semblent référencer simple, alors que je suis sensé avoir créé un nouvel objet.
Merci d'avance pour vos réponses et solutions (ça me bloque dans un programme plus complexe).![]()
Partager