¿Cómo se establece/obtener los valores de los atributos de t
dado por x
.Cómo acceder al atributo de objeto dado cadena correspondiente al nombre de ese atributo
class test():
attr1 = int
attr2 = int
t = test()
x = "attr1"
¿Cómo se establece/obtener los valores de los atributos de t
dado por x
.Cómo acceder al atributo de objeto dado cadena correspondiente al nombre de ese atributo
class test():
attr1 = int
attr2 = int
t = test()
x = "attr1"
Se construye en funciones llamadas y getattr
setattr
getattr(object, attrname)
setattr(object, attrname, value)
En este caso
x = getattr(t, "attr1")
setattr(t, 'attr1', 21)
También hay delattr para eliminar atributos, pero esto se usa muy poco. –
y hasattr para probar si un objeto tiene o no un attr específico, en ese caso usar los tres argumentos getattr (object, attrname, default) es a menudo mejor. – Duncan
¡Esta es definitivamente la manera elegante! – larry
Hay pitón construido en funciones SetAttr y getattr. Que puede usar para establecer y obtener el atributo de una clase.
Un breve ejemplo:
>>> 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
duplicado: http://stackoverflow.com/questions/1887509/access-to-class-attributes-by-using-a-variable-in-python –
duplicado Posible de [Python: propiedad de la clase de acceso de la cadena] (http://stackoverflow.com/questions/1167398/python-access-class-property-from-string) – fejese