privados - Un método get() para verificar los atributos de Python
self python 3 (3)
Para verificar si una clave está en un diccionario, puede usarla in
: ''key'' in dictionary
.
Para verificar los atributos en el objeto use la función hasattr()
: hasattr(obj, ''attribute'')
Si tuviera un dict
diccionario y quisiera verificar si hay dict[''key'']
, podría hacerlo en un bloque try
(bleh!) O usar el método get()
, con False
como valor predeterminado.
Me gustaría hacer lo mismo para object.attribute
. Es decir, ya tengo el objetivo de devolver False
si no se ha establecido, pero eso me da errores como
AttributeError: el objeto ''bool'' no tiene atributo ''atributo''
¿Quieres decir hasattr()
tal vez?
hasattr(object, "attribute name") #Returns True or False
Python.org doc - Funciones integradas - hasattr ()
También puede hacer esto, que es un poco más desordenado y no funciona para los métodos.
"attribute" in obj.__dict__
Un análogo más directo a dict.get(key, default)
que hasattr
es getattr
.
val = getattr(obj, ''attr_to_check'', default_value)
(Donde default_value
es opcional, levantando una excepción en ningún atributo si no se encuentra).
Para su ejemplo, pasaría False
.