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 .