""" Caracteristicas: TODO es un objeto Tipado Dinamico °Menor Acoplamiento, facilita realizar cambios en los modelos °Permite mejor aprovechamiento del polimorfismo Es meta-circular ° Permite hacer meta-programación PROGRAMA(POO) Objetos que colaboran enter si enviandose mensajes Los obejtos son creados mediante clases. Las clases son objetos que representan conceptos o ideas del dominio del problema. Las clases definen el msj q sabe el responder objeto. Los obejtos son conocidos por los mensajes q saben responder. METODOS Son objetos que representan un conjunto de colaboraciones En las clases se definen 2 tipos de metodos METODOS DE INSTANCIA Son metodos que implementan los mensajes que se envian a los obj q son instancias de una clase METODOS DE CLASE Son metodos que implementan los mensajes q sen envian a la clase EXISTEN 2 implementaciones de POO Prototipos: - Un objeto ejemplar que representa el comportamiento de un conjunto de obetos similares Clases: - Una clases es un onjeto que representa un concepto o idea del dominio del problema La SUBCLASIFICACION o HERENCIA: es una herramienta para organizar el conocimiento en ontologías La CLASIFICACION es: 1- Una relacion estatica entre clases. 2- Obliga a tener una clase y por lo tanto su nombre antes del obejto concreo, antinatural. 3- Obliga a generealizar cuadno aun no se posee el conocimiento total de aquello q representa La SUBCLASIFICACION ( HERENCIA ) 1- Debe ser especificada de manera inversa a como se obtiene el conociento 2- Rompe el encapsulamiento, puesto que la subclase debe conocer la implementacion de la superclase POLIMORFISMO Dos o mas objeto son polimorficos entre si para un conjunto de mensajes, si responden a dicho conjunto de mensajes semanticamente igual,es decir, que hacen lo mismo. Recibir objetos polimorficos y devolver objetos polimorficos Un método es un objeto que representa un conjunto e colaboraciones. La reclación de conocimiento es la única relación que existe entre los objetos. La definición de tipo en el POO es que es un conjunyo de mensajes. MULTIPARADIGMA, FUNCIONAL e IMPERATIVO además de POO. Todo es un objeto, es dinamicamente tipado, se puede utlizar al máximo el polimorfismo. Se puede hacer metaprogramación. """ " Ejemplificación de polimorfismo " import math # Los enteros y los decimales son polimórficos respecto a la suma print( 4 + 6, 4.5 + 5.7, ) # Los enteros y decimales son polimórficos respecto a la resta print( 4 - 3, 8.5 - 5.7, ) # Los enteros y decimales son polimórficos respecto a la multiplicación print( 4 * 3, 8.5 * 5.7, ) # Pero los enteros no son polimórficos respecto a la funcion factorial print( math.factorial(4), # 24 #math.factorial(4.5), # ValueError ) class ClassA(object): def m1(self, a, b): return a + b