preloader

1. Januar 1 | 2 minuten lesen
Inhaltsverzeichnis

Ahora genera: getattr: atributo_ficticio p.dummy_attribute: predeterminado Tenga en cuenta que el método getattr() solo se llama para atributos desconocidos como Python primero busca en dict y, por lo tanto, si se encuentra el atributo, no se realiza ninguna llamada a el método getattr(). También tenga en cuenta que si se accede a un atributo directamente desde el dict (por ejemplo estudiante.dict[’nombre’]) luego el método getattr() nunca se invoca. 28.5 Manejo de invocaciones de métodos desconocidos El método getattr() también se invoca si se llama a un método desconocido. Por ejemplo, si llamamos al método dummy_method() en un objeto Student, entonces se genera un error (de hecho, esto es nuevamente un AttributeError). Sin embargo, si nosotros definir un método getattr() podemos devolver una referencia a un método para usar como un valor predeterminado Por ejemplo, si modificamos el método getattr() para devolver un referencia del método (es decir, el nombre de un método en la clase Student): 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 self.my_default def my_default(auto): devolver ‘predeterminado’ Ahora, cuando se invoca un método indefinido (como dummy-method()) Se llamará a getattr(). Este método devolverá una referencia a la método my_default(). Esto se ejecutará y el valor devuelto como un efecto secundario de la invocación del método como lo indican las canastas redondas (el ‘()’) después de la llamada a el método original: alumno = alumno(‘Juan’) res2 = estudiante.dummy_method() imprimir(’estudiante.dummy_method():’, res2) 332 28 Monkey Patching y búsqueda de atributos

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

Weiterlesen

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

Weiterlesen

• 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.

Weiterlesen