Comment définissez-vous/obtenez les valeurs des attributs de t
donnés par .Comment accéder à l'attribut objet chaîne donnée correspondant au nom de cet attribut
class test():
attr1 = int
attr2 = int
t = test()
x = "attr1"
Comment définissez-vous/obtenez les valeurs des attributs de t
donnés par .Comment accéder à l'attribut objet chaîne donnée correspondant au nom de cet attribut
class test():
attr1 = int
attr2 = int
t = test()
x = "attr1"
Il y a des fonctions intégrées appelées getattr
et setattr
getattr(object, attrname)
setattr(object, attrname, value)
Dans ce cas
x = getattr(t, "attr1")
setattr(t, 'attr1', 21)
Il y a aussi delattr pour supprimer des attributs, mais cela est rarement utilisé. –
et hasattr pour tester si un objet a un attr spécifique bien que dans ce cas en utilisant le formulaire à trois arguments getattr (object, attrname, default) est souvent mieux. – Duncan
C'est certainement la manière gracieuse! – larry
Il est python construit dans les fonctions setattr et getattr. Ce qui peut être utilisé pour définir et obtenir l'attribut d'une classe.
Un bref exemple:
>>> from new import classobj
>>> obj = classobj('Test', (object,), {'attr1': int, 'attr2': int}) # Just created a class
>>> setattr(obj, 'attr1', 10)
>>> setattr(obj, 'attr2', 20)
>>> getattr(obj, 'attr1')
10
>>> getattr(obj, 'attr2')
20
double: http://stackoverflow.com/questions/1887509/access-to-class-attributes-by-using-a-variable-in-python –
Possible en double de [Python: accède à la propriété de classe de la chaîne] (http://stackoverflow.com/questions/1167398/python-access-class-property-from-string) – fejese