preloader

1 janvier 1 | 2 minutes de lecture
Index du contenu

28.4 Manejo del acceso a atributos desconocidos Monkey patching es, por supuesto, muy flexible y muy útil cuando sabes lo que necesita proporcionar; sin embargo, ¿qué sucede cuando una referencia de atributo (o método) invocación) ocurre cuando no se espera? Por defecto se genera un error como el AttributeError a continuación: alumno = alumno(‘Juan’) res1 = estudiante.dummy_attribute imprimir (‘p.dummy_attribute:’, res1) Esto genera un AttributeError para dummy_attribute Rastreo (llamadas recientes más última): Archivo “Estudiante.py”, línea 51, en <módulo> res1 = estudiante.dummy_attribute AttributeError: el objeto ‘Estudiante’ no tiene atributo ‘dummy_attribute’ Por supuesto, puede detectar el error de atributo si lo desea; pero el medio de envolver su código en un bloque de prueba. Un enfoque alternativo es definir un método llamado getattr(); este método será llamado cuando no se encuentre un atributo en el objetos (y clases) diccionario dict. Este método puede realizar cualquier la acción es apropiada, como registrar un mensaje o proporcionar un valor predeterminado, etc. Por ejemplo, si modificamos la definición de la clase Student para incluir un método getattr() tal que se devuelve un valor predeterminado: estudiante de clase: cuenta = 0 def init(uno mismo, nombre): self.nombre = nombre Student.count += 1

Método llamado si el atributo es desconocido

def getattr(uno mismo, atributo): imprimir (’getattr:’, atributo) devolver ‘predeterminado’ Ahora, cuando tratamos de acceder a dummy_attribute en un objeto de estudiante, obtendrá la cadena ‘predeterminada’ devuelta: alumno = alumno(‘Juan’) res1 = estudiante.dummy_attribute imprimir (‘p.dummy_attribute:’, res1) 28.4 Manejo del acceso a atributos desconocidos 331

comments powered by Disqus

popular post

Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza

Lire plus

Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza

Lire plus

• https://docs.python.org/3/ El sitio principal de documentación de Python 3. Contiene tutoriales, referencias de bibliotecas, guías de configuración e instalación, así como Python cómo-tos • https://docs.

Lire plus