Bonjour,

Je cherche à créer des objets (instances de classe si j'ai bien compris) à partir d'une variable ou d'une chaine de caractères.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
class Ovni:
    def __init__(self,x,y):
        self.x = x
        self.y = y
 
ovni1 = Ovni(10,10)
ovni2 = Ovni(10,10)
...
ovni100= Ovni(10,10)
Je ne sais pas à l'avance combien d'objets seront créés donc je préfèrerai éviter de les créer un par un.
J'avais pensé (mais sans succès) à quelque chose du genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
class Ovni:
    def __init__(self,x,y):
        self.x = x
        self.y = y
 
for a in range(100):
    eval('ovni'+string(a))=Ovni(10,10)
La seule méthode qui fonctionne semble être d'utiliser exec:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
class Ovni:
    def __init__(self,x,y):
        self.x = x
        self.y = y
 
for a in range(100):
    exec('ovni'+string(a)+'=Ovni(10,10)')
Mais ça semble assez sale.
Il doit y avoir une autre méthode pour faire ça.


Merci de vos éventuels éclairages.