Python: Ajout de Champs dans les Objets Dynamiquement
Je me demande si il est possible d'ajouter des champs à des objets dynamiquement. Par exemple, je veux être en mesure d'ajouter quelque chose comme:
user = object()
user.first_name = 'John'
user.last_name = 'Smith'
Lorsque j'exécute qu'en Python en ligne de commande de l'interpréteur j'obtiens:
AttributeError: 'object' object has no attribute 'first_name'
Une idée?
OriginalL'auteur Rafid | 2010-12-14
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
1) Concernant
pass
: docs.python.org/tutorial/controlflow.html#pass-statements 2) Non, quand vous neobj.x = 5
, de n'ajouterx
attribut d'instance unique deObject
. Si vous souhaitez que tous lesObject
instances partagent x, vous avez à faireObject.x = 5
.Il n'y a pas une telle chose comme une valeur non définie en Python - le plus proche, c'est
None
. Les objets créés dans la façon gruszczy propose de ne pas avoir toute sorte de "prototype"; vous pouvez ajouter et supprimer des attributs à volonté, et il n'a pas d'effet sur toute autre instance de la classe Object.Belle façon simple de simuler un objet avec un attribut, merci!
OriginalL'auteur gruszczy
Vous ne pouvez pas assigner les attributs de
object
cas comme celui-ci. Dériver deobject
, et utiliser une instance de cette classe.OriginalL'auteur Ignacio Vazquez-Abrams