Sé que la pregunta es un poco raro, pero no puedo pensar en otra forma de decirlo. Tengo una aplicación que se ocupa de grandes objetos JSON, y yo quiero ser capaz de decir simplemente:¿Hay algún truco para "sobrecargar el operador de punto"?
object1.value.size.whatever.attributexyz
en lugar de
object1.get('value').get('size').get('whatever').get('attributexyz')
¿Hay alguna forma inteligente de coger el AttributeError
que se levantó y verificar dentro de la estructura de datos si ese atributo corresponde a cualquiera de sus valores?
cómo se almacenan los atributos de cada objeto? Si solo son variables de miembros regulares, en Python no es necesario hacer nada especial, solo funciona como está escrito. – bgporter
, de hecho, si el objeto json es devuelto por el módulo json, debe hacer 'object1 ['value'] ['size'] ['whatever'] ['attributexyz']' para el acceso estándar al objeto –
Do not diga "operador de punto", diga "acceso de atributo". Simplemente está definiendo "acceso a atributos". Python ofrece muchas formas de hacerlo. Propiedades, Decoradores y nombres de métodos especiales. Es posible que desee cambiar el título de la pregunta. –