Est-il possible d'instancier un objet de classe à partir d'une liste ?
Bonjour à tous,
Dans l'exemple ci-après, une liste contient 3 noms avec lesquels je souhaiterais créer 3 instances de la classe 'Rectangle'.
Il semble que le code de création fonctionne puisque le calcul de surface est exact.
Si les instances sont donc crées comment faire pour les ré-utiliser dans la suite du code.
Quelque chose dans le genre des lignes 27 et 28.
Code:
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 28 29 30 31 32
|
# -*- coding: UTF-8 -*-
class Rectangle(object):
""" Classe Rectangle """
def __init__(self, long, larg):
self.long = long
self.larg = larg
def surface(self):
""" simple calcul de surface """
return self.long * self.larg #, self.nom
def lancer():
LesRectangles = ['r1', 'r2', 'r3']
for i in range(1,4):
lo = 10 + i * 10
la = 20 + i * 10
r = LesRectangles[i-1]; print("valeur de 'r' ici ", r)
r = Rectangle(lo, la)
print("surface de ", LesRectangles[i-1], r.surface())
print("choix ", LesRectangles[1]) # pour vérif donne --> r2 (correct)
## print("surface de ", globals()[LesRectangles[1]].surface()) # --> erreur
print("surface de ", r2.surface()) # --> erreur
## lancer()
lancer() |