Index of content
Hay varios puntos a tener en cuenta sobre esta definición de clase, que incluyen: Los Descriptores deben definirse a nivel de clase, no a nivel de objeto/instancia. nivel. Estos atributos x e y del objeto Cursor están definidos como registradores descriptores dentro de la clase (no dentro del método init()). si intentas definalos usando self.x y self.y los descriptores no serán registrados. El método Cursor init() usa el diccionario dict para inicializar el atributos de instancia/objeto x e y. Este es un enfoque alternativo para acceder a un atributos de los objetos; es utilizado internamente por un objeto para contener los valores de atributos reales. Pasa por alto el mecanismo normal de búsqueda de atributos invocado cuando usa el notación de puntos (como cursor.x = 10). Esto significa que no será interceptado por el Descriptor. Esto se ha hecho porque el registrador usa el método str() para imprimir la instancia que contiene el atributo que utiliza los valores actuales de x e y. Cuando el valor de x se establece inicialmente, no habrá valor para y y, por lo tanto, se producirá un error. ser generado por str(). El método str() también usa el diccionario dict para acceder al atributos ya que no es necesario registrar este acceso. También se volvería recursivo si el registrador también usó el método para imprimir la instancia. Ahora podemos usar instancias del objeto Cursor sin saber que el el descriptor interceptará el acceso a los atributos x e y: El resultado de esto ilustra cómo los descriptores han interceptado el acceso a los atributos Tenga en cuenta que el método move_by() accede tanto al getter como al setter descriptor métodos como este método lee el valor actual de los atributos y luego los actualiza. imprimir(‘p1:’, cursor) cursor.x = 20 cursor.y = 35 imprimir (‘p1 actualizado:’, cursor) imprimir(‘p1.x:’, cursor.x) imprimir(’-’ * 25) cursor.move_by(1, 1) imprimir(’-’ * 25) del cursor.x cursor = Cursor(15, 25) imprimir(’-’ * 25) 27,8 El Protocolo Descriptor 321
popular post
Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza
Read MoreTemas 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