preloader

January 1, 1 | 2 minutes read
Index of content

Podemos usar esta versión de la clase con el siguiente fragmento de código estudiante = Estudiante(‘Katie’) print(’estudiante.nombre:’, estudiante.nombre) # búsqueda de instancia res1 = estudiante.dummy_attribute # invocar atributo faltante imprimir (’estudiante.dummy_attribute:’, res1) La salida de esto es ahora: getattribute() nombre estudiante.nombre: Katie getattribute() atributo_ficticio getattr: atributo_ficticio estudiante.dummy_attribute: predeterminado Como puede ver en esto, se llama al método getattribute() para ambos nombre del estudiante y estudiante.dummy_attribute. Sin embargo el El método getattr() solo se llama cuando el dummy_attribute es accedido Tenga en cuenta que getattribute() solo se invoca para el acceso a atributos y no para la invocación de métodos (a diferencia de getattr()). 28.7 Interceptar Establecer un atributo También es posible interceptar la asignación de atributos de objeto/instancia cuando el punto se está utilizando la notación (por ejemplo, estudiante.nombre = ‘Bob’). Esto se puede hacer por implementando el método setattr(). Este método se invoca en lugar de la asignación. El método setattr() puede realizar cualquier acción requerida, incluido el almacenamiento el valor ofrecido. Sin embargo, para hacer esto debe insertar el valor directamente en el diccionario de objetos (por ejemplo, estudiante.dict[’nombre’] = ‘Bob’) o preferiblemente llama al método setattr() de la clase base, por ejemplo object. setattr__(self, name, value) como se muestra a continuación para la clase Student: estudiante de clase: cuenta = 0 def init(uno mismo, nombre): self.nombre = nombre Student.count += 1

Siempre se llamará al método cuando se establezca un atributo

def setattr(yo, nombre, valor): imprimir(’setattr:’, nombre, valor) objeto.setattr(yo, nombre, valor) 334 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

Read More

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

Read More

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

Read More