Salut,
Si çà te plaît "bravo". Mais j'ai du mal à me remettre dans le contexte de ce truc. Initialement, tu voulais récupérer dans 'init', le nom de la variable dans lequel serait assigné l'objet crée.
Dans le dernier code, ca se passe là:
Et pas besoin de callback pour çà... il "suffit" de farfouiller dans la pile mais tu disais à l'époque:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 try: _longname = traceback.extract_stack(limit=2)[0][3].split('=')[0].strip() _shortname = _longname.split('.').pop() if '()' in _shortname: self._noname() else: self._name = _shortname except: self._noname()
Ce qui limite quelque peu les hackeries possibles.En fait j'essaie de trouver une façon 'élégante' de me passer d'inspect et autre.
Mon seul soucis est de dire que l'appelant assigne l'objet qu'on lui retourne comme il le souhaite. i.e. à l'instant t, il a fait a = x()... mais il pourra faire plus tard b = a et a = 123 sans qu'il soit simple - il doit y avoir des hackeries - de s'en rendre compte.
=> On peut faire des choses avec l'objet mais comme il est difficile de contrôler les choses qui pointent dessus autant fuir un algo. qui fonctionnerait avec ce genre d'hypothèse.
Dit autrement, on voulait faire quoi? N'est-il pas envisageable de le faire autrement?
Cordialement,
- W
Partager