1

J'aimerais pouvoir instancier un objet de base et ensuite lui donner des attributs à l'exécution (sans utiliser de classe donc).
Quand j'instancie un object() je ne peux pas ensuite manipuler l'instance.
Par contre, si je crée une classe vide foo, je peux faire ce que je veux avec l'instance (comme lui ajouter des attributs).

) >>> b.attr = 0 >>> >>> # (pas d'erreur levée)
cf le log suivant (mode interactif de python) : Python 2.4.4 (#2, Jan  3 2008, 13:36:28) 
[GCC 4.2.3 20071123 (prerelease) (Debian 4.2.2-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = object() # classe de base des objets (built-in)
>>> a.attr = 0
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: 'object' object has no attribute 'attr'
>>> class foo: # je définis une classe vide
...   pass
... 
>>> b = foo(


Y a-t-il un moyen de faire ce que je veux sans avoir besoin de définir cette classe vide ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »