Un método similar a get () para comprobar los atributos de Python


78

Si tuviera un diccionario dicty quisiera verificarlo dict['key'], podría hacerlo en un trybloque (¡bleh!) O usar el get()método, conFalse un valor predeterminado.

Me gustaría hacer lo mismo por object.attribute. Es decir, ya tengo un objeto para devolver Falsesi no se ha configurado, pero eso me da errores como

AttributeError: el objeto 'bool' no tiene atributo 'atributo'

Respuestas:


124

Un análogo más directo de lo dict.get(key, default)que hasattres getattr.

val = getattr(obj, 'attr_to_check', default_value)

(Donde default_valuees opcional, generar una excepción en ningún atributo si no se encuentra).

Por tu ejemplo, pasarías False.



7

Para comprobar si una clave se encuentra en un diccionario puede utilizar in: 'key' in dictionary.

Para verificar atributos en el objeto, use la hasattr()función:hasattr(obj, 'attribute')


¡La única respuesta que aborda el hecho de que ambas opciones para verificar un dictado presentado por OP son Bleh!
Mad Physicist
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.