Salut à tous,
Dans le bout de code ci-après, j'aurais souhaité savoir s'il est possible d'obtenir de le nom de l'objet instancié.
Dans cet exemple afficher:

r1 perimetre = 18
et
r2 perimetre = 30

pour différencier automatiquement les 2 résultats.

On voit bien dans la réponse que les adresses sont différentes.

Comment donc en obtenir le nom sans avoir à rajouter un paramètre contenant ce nom à la classe?
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 Rectangle(object):
    def __init__(self,L, l):
        self.longueur = L
        self.largeur = l
        self.nom = object()
 
 
    def perimetre(self):
        print("perimetre=", self.longueur * 2 + self.largeur * 2)
        print("nom de l'instance:", self.nom)
 
 
r1=Rectangle(4,5)
r2=Rectangle(7,8)
r1.perimetre()
r2.perimetre()
ce qui est renvoyé:
>>>
perimetre= 18
nom de l'instance: <object object at 0x00000000022EE190> ## ici donc, au lieu de l'adresse j'aurais souhaité le nom ('r1')
perimetre= 30
nom de l'instance: <object object at 0x00000000022EE1A0>
>>>