Index du contenu
realizado por una amplia gama de diferentes tipos de cosas. Cómo se procesa la solicitud cessed depende de la cosa que recibe la solicitud. El programador no necesita preocuparse por cómo se maneja la solicitud, solo que así es. Esto se ilustra a continuación. En este ejemplo, el parámetro pasado a la función night_out() espera recibir algo que responda a los métodos comer(), beber() y dormir(). Cualquier objeto que cumpla con este requisito se puede utilizar con la función. Podemos definir múltiples clases que cumplan con este contrato informal, por ejemplo, puede definir una jerarquía de clases que proporcione estos métodos, o separar completamente clases que implementan los métodos. En el caso de la jerarquía de clases los métodos puede o no anular los de la clase principal. Efectivamente, esto significa que puede pedir muchas cosas diferentes para realizar el mismo acción. Por ejemplo, puede pedirle a un rango de objetos que proporcionen una cadena imprimible describiéndose a sí mismos. De hecho, en Python esto es exactamente lo que sucede. Por ejemplo, si le pide a una instancia de una clase Manager, un objeto compilador o un objeto de base de datos que devuelve una cadena de este tipo, utiliza el mismo método (str(), en Python). El nombre de polimorfismo es desafortunado y a menudo conduce a confusión. Hace todo el proceso suena bastante más grandioso de lo que realmente es. Tenga en cuenta que esta es una de las características más significativas y flexibles de Python; lo hace no atar una variable a un tipo específico; en su lugar a través de Duck Typing siempre que el objeto siempre que cumpla con el contrato implícito, entonces estamos bien. Las siguientes clases cumplen con el contrato implícito en la función night_out(): def night_out(pag): turba() p.beber() p.dormir() Persona de clase: def comer(auto): print(‘Persona - Comer’) def bebida(auto): print(‘Persona - Bebida’) def dormir(self): print(‘Persona - Dormir’) clase Empleado(Persona): def comer(auto): imprimir(‘Empleado - Comer’) def bebida(auto): print(‘Empleado - Bebida’) def dormir(auto): imprimir(‘Empleado - Dormir’) clase Vendedor(Empleado): def comer(self): print(‘Vendedor - Comer’) def bebida(auto): print(‘Vendedor - Bebida’) perro de clase: def comer(yo): print(‘Perro - Comer’) def beber(auto): print(‘Perro - Beber’) def dormir(auto): print(‘Perro - Dormir’) 318 27 Protocolos, Polimorfismo y Descriptores
popular post
Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza
Lire plusTemas 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