Comment avez-vous définir par programmation un attribut?
Supposons que j'ai un objet python x
et une chaîne s
, comment puis-je régler l'attribut s
sur x
? Donc:
>>> x = SomeObject()
>>> attr = 'myAttr'
>>> # magic goes here
>>> x.myAttr
'magic'
Ce qui est de la magie? Le but de ce qui, incidemment, est de mettre en cache les appels à x.__getattr__()
.
Vous devez vous connecter pour publier un commentaire.
Pour obtenir de l'aide sur elle:
Edit: Cependant, vous ne devriez noter (comme l'a fait remarquer dans un commentaire) que vous ne pouvez pas faire cela à un "pur" instance de
object
. Mais il est probable que vous avez un simple sous-classe de l'objet sur lequel il fonctionne parfaitement. Je vous demande instamment les O. P. de ne jamais faire les instances de l'objet comme ça.dirty
attribut de la saisie de l'utilisateur...__slots__
attribut.int
ainsi. Pouvez-vous expliquer pourquoi? (est-il sur tous les__builtin__
's?int
à l'aide de latype(cls, (int,), kwargs)
modèle? (Je sous-classefloat
sur une base régulière et de les remplacer__init__
dans la coutume de flotteur pour ajouter des attributs personnalisés)Généralement, on définit des classes pour cette.
Cependant, vous pouvez, dans une certaine mesure, faire cela avec le
setattr
etgetattr
fonctions intégrées. Cependant, ils ne fonctionnent pas sur les instances deobject
directement.Ils le font, cependant, le travail sur toutes sortes de simples classes.
soit x un objet, alors vous pouvez le faire de deux façons