4.1 POO
Tipos de datos abstractos
- En python todo es un objeto y tiene un tipo
- Representacion de datos y formas de interactuar con ellos
- Formas de interactuar con un objeto
- Creacion
- Manipulacion
- Destruccion (por medio de garbage collector y de manera explicita)
- Ventajas
- Descomposicion
- Abstraccion
- Encapsulacion
Sintaxis de creacion de clases
- Las funciones dentro de una clase son METODOS.
- No es necesario usar la palabra new para crear una instancia de clase.
class <nombre_de_la_clase> ( <super_clase> ):
def __init__ (self, <params>): # Constructor
<expressions>
def <nombre_metodo> (self, <params>):
<expressions>
Instancias
- Mientras que la clase es un molde, a los objetos creados se les conoce como instancia
- Cuando se crea una instancia, se ejecuta el metodo init (Constructor o bundle init)
- Todos los metodos de una clase reciben implicitamente como primer parametro self
- Los atributos de clase nos permiten:
- Representar datos
- Procedimientos para interactuar con los mismos
- Mecanismos para esconder la representacion interna.
- Se accede a los atributos con la notacion punto
- Peude tener atributos privador. Por convencion comienzan con _
Descomposicion
- Partir un problema en problemas mas pequeños
- Las clases permiten crear mayores abstracciones en formas de componentes
- Cada clase se encarga de una parte del problema y el programa se vuelve mas facil de mantener
Abstraccion
- Es enfocarse en la informacion relevante
- Separar la informacion central de los detalles secundarios
- Podemos utilizar variables y metodos ( privados o publicos)
Encapsulacion
- Permite agrupar datos y su comportamiento
- Controla el acesso a dichos datos
- Previene modificaciones no autorizadas
Ejemplo:
class Vehiculo:
def __init__(self, motor):
self._motor = motor
@property # Getter
def motor(self):
def motor(self):
return self._motor
@motor.setter # Setter
def set_motor(self, motor):
def set_motor(self, motor):
self._motor = motor
Herencia
- Permite modelar una jerarquia de clases
- Permite compartir comportamiento comun en la jerarquia
- Al padre se le conoce como superclase y al dijo subclase
Polimorfismo
- La habilidad de tomar varias formas
- En Python nos permite cambiar el comportamiento de una superclase para adaptarlo a la subclase
Backlinks: Inteligencia Artificial:4. POO y Algoritmos con Python