Está en la página 1de 30

SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO INDUSTRIAL

PLAN DE TRABAJO
DEL ESTUDIANTE
1. INFORMACIÓN GENERAL:

CFP/UCP/ESCUELA: SENATI / INDEPENDENCIA / ESCUELA SUPERIOR DE


INGENIERÍA.

ESTUDIANTE: LÓPEZ CHAVARRÍA, PEDRO YORDI.

ID: 1476129 BLOQUE: NRC – 63273.

CARRERA: INGENIERÍA DE CIENCIA DE DATOS E INTELIGENCIA ARTIFICIAL.

INSTRUCTOR: SIFUENTES SALGADO, LUIS.

SEMESTRE: III DEL: 10 DE AGOSTO AL: 4 DE DICIEMBRE DEL 2023.

TEMA DE TRABAJO: IMPLEMENTACIÓN DE SISTEMA DE REGISTROS DE


ATENCIONES PARA LA VETERINARIA SAFARI SAC.

2. PLANIFICACIÓN DEL TRABAJO

ACTIVIDADES/ CRONOGRAMA/ FECHA DE ENTREGA



ENTREGABLES
09/10 09/10 09/10 09/11 10/11
Completar
información X
general.
Planificación de
X
trabajo.
Llenado de lista
X
de recursos.
Llenado de lista
X
de operaciones .
Desarrollo de los
X
puntos 1 y 3.
Desarrollo de los
puntos 2 y 4,
X X
finalización del
proyecto.

2
TRABAJO FINAL DEL CURSO

3. PREGUNTAS GUIA

Durante la investigación de estudio, debes obtener las respuestas a las siguientes


interrogantes:

Nº PREGUNTAS
1

HOJA DE RESPUESTAS A LAS PREGUNTAS GUÍA

3
1.

2.

3.

4.

5.

6.

7.

8.

9.

4
TRABAJO FINAL DEL CURSO

HOJA DE PLANIFICACIÓN

PROCESO DE EJECUCIÓN
SEGURIDAD / MEDIO AMBIENTE /
NORMAS -ESTANDARES
OPERACIONES / PASOS /SUBPASOS

Buscar un lugar ventilado, aislado de ruidos y con buena  Acondicionar el o los


iluminación. espacios de trabajo,
priorizar el silencio, la
Colocar las herramientas a utilizar al alcance de la mano.
buena iluminación y la
Encender la laptop. ergonomía.
 Usar los equipos
Conectar la laptop a la red local si no se conecta electrónicos con las
automáticamente. medidas de precaución
Ingresar al navegador Mozilla Firefox. adecuadas, en caso de
manipulación de laptop
Ingresar al campus virtual de SENATI en Blackboard. tener las manos secas y el
lugar de colocación seco,
Buscar en el menú de cursos el módulo de Programación de preferencia de un
Orientada a Objetos material que no conduzca
Buscar en el menú del módulo de POO Actividades mucho el calor como la
Entregables. madera para evitar
sobrecalentar el
Ubicar el acceso al Trabajo Final del curso. microprocesador.
 Tener en la medida de lo
Descargar archivo y guardarlo en Disco C bajo el nombre
posible un asiento
de archivo “TRABAJO_FINAL_POO(AVANCE).docx”.
ergonómico o
Abrir el archivo y proceder a leer atentamente las acondicionar una silla no
indicaciones y requerimientos de la tarea. ergonómica en base a
necesidades y
Investigar y leer sobre conceptos desconocidos en libros o requerimientos propios de
por consultas en páginas web. nuestro cuerpo.
Apuntar dichos conceptos, guardar los enlaces y tener al  Proteger la vista mediante
alcance dichos conceptos. lentes antireflex y con
medida de ser necesario.
Resolver los requerimientos relacionados al Plan de  Tomar pausas activas de
Trabajo del Estudiante: por lo menos 10 minutos
por cada jornada de 30
 Completar el formulario de datos del alumno.
minutos.
 Leer y organizar la planificación del trabajo.
 Caminar, salir y
 Leer y comprender las preguntas guía.
despejarse, asi las ideas
 Completar las preguntas guía, de acuerdo al
también fluyen mejor.
formato planteado por el docente, respetando
 Evitar usar demasiado
normativa APA.
papel o enchufar la laptop
 Elaborar la hoja de planificación.
y aparatos a la toma de
 Realizar el dibujo/esquema/diagrama, aunque sea corriente cuando no se
un bosquejo de lo que será al final de la entrega. necesite.
Proceder al desarrollo del problema planteado:

5
TRABAJO FINAL DEL CURSO

 Leer los objetivos del trabajo.  Finalmente adoptar


 Leer el planteamiento del problema. medidas en el camino
 Leer los apuntes sobre conceptos conocidos y para situaciones
desconocidos, leer sobre teoría relacionada a imprevistas bajo una
programación orientada a objetos, clases, cultura de prevención y
herencias, polimorfismo, analizar la metodología y planificación.
desarrollar los problemas en base a la
investigación.
 Verificar los resultados, guardar el archivo en
Disco C bajo el nombre de
“TRABAJO_FINAL_POO(AVANCE).docx”.
 Cerrar programa Word 2016.

Buscar en el navegador el campus virtual de SENATI, en


Blackboard ubicar nuevamente el menú de POO ubicar la
entrega del trabajo final y en la casilla subir el archivo
guardado en mi equipo.

Enviar archivo dentro de la fecha límite.

Cerrar los programas usados

Apagar la laptop correctamente.

INSTRUCCIONES: debes ser lo más explícito posible. Los gráficos ayudan a transmitir mejor
las ideas. No olvides los aspectos de calidad, medio ambiente y SHI.

6
TRABAJO FINAL DEL CURSO

DIBUJO / ESQUEMA/ DIAGRAMA

Creamos y configuramos nuestro entorno de


desarrollo, en Visual Studio Code con Python 3.11

INICIO

Creamos un entorno virtual ‘ProyectoVeterinaria’.

Activamos el entorno virtual


‘Script/ProyectoVeterinaria/actívate’

Creamos un proyecto llamado ‘ProyectoVeterinaria’.

Dentro hay una carpeta ‘Scripts’ y un archivo llamado


‘registroVeterinaria.py’.

Definimos una clase principal ‘Animal’ con atributos


como {código, nombre, edad, especie, dni_dueño,
peso, alimentación, tipo_servicio} y los métodos
comer, str y los get para obtener atributos protegidos.

Definimos dos subclases {Mamifero, Ave, Reptil y


Pez} que heredan de la clase ‘Animal’, cada
subclase hereda la mayoría de atributos, implementa
1 propio, también hereda el método comer y str.

Desarrollamos la lógica del código, definimos


instancias de las clases, asi como el formato en que
almacenaremos los datos.

Desarrollamos el código en un entorno IDE


procurando cumplir los requisitos.

NO ¿CUMPLE LOS
REQUERIMIENTOS DE
APLICAR ABSTRACCION,
HERENCIA, POLIMORFISMO
Y ENCAPSULAMIENTO?
SI
FIN

7
TRABAJO FINAL DEL CURSO

IMPLEMENTACIÓN DE SISTEMA
DE REGISTRO DE PACIENTES Y
CLIENTES PARA LA
VETERINARIA SAFARI SAC.

LÓPEZ CHAVARRÍA, PEDRO YORDI --

INSTRUCCIONES: completa la lista de recursos necesarios para la ejecución del trabajo.


1. MÁQUINAS Y EQUIPOS

-Laptop Asus Vivobook, Intel i7 11°, 2.6 gHz 12 GB RAM y 512 SSD.

-Mouse inalámbrico Logitech.

-Disco Local C.

-Router Huawei, terminal GPON.

-Smartphone LG LM-X120HM.

3. HERRAMIENTAS E INSTRUMENTOS

-Software de edición de código Visual Studio Code y Visual Studio 2022.

-Python v 3.11

-Software de edición de texto Microsoft Word 2016.

-Software de acceso al trabajo final y campus virtual Navegador Mozilla Firefox.

-Software de navegación por páginas web Mozilla Firefox.

5. MATERIALES E INSUMOS

-Cargador de Smartphone y cargador de laptop.

-Material de limpieza para ambiente de trabajo marca Limpiatodo Sapolio y trapo


de limpieza casero. Material de limpieza para equipos electrónicos, paño de
microfibra y líquido de limpieza marca Teraware.

-Lapicero azul marca Faber Castell.

-Lápiz marca Stabilo, goma de borrar marca Artesco.

LISTA DE RECURSOS

8
TRABAJO FINAL DEL CURSO

DESCRIPCIÓN DE LA TAREA / OPERACIONES

La veterinaria “Safari SAC” es una empresa dedicada a la atención y prevención de


mascotas y animales exóticos, se presenta la necesidad de realizar un pequeño
software del tipo escritorio para guardar la información de los pacientes y sus
respectivos dueños para poder generar un control del historial de atenciones en la
empresa. Los resultados del análisis de datos permitirán conocer a que clientes se
le puede ofrecer beneficios de descuentos en el servicio de consultas preventivas.

Para generar dicho software se debe tomar como referencia lo aprendido y


desarrollado en clases, según cada tarea:

1. Desarrollar los conceptos de la programación orientada a objetos.


 Crear una clase padre llamada “Animal” como clase principal.

2. Trabajar con encapsulación y ocultamiento de la información.


• Los atributos y características por tipo de “Animal” se deben considerar
como atributos de una clase (raza, color, etc.).

3. Trabajar con herencias y composición.


• Crear nuevas clases según tipo de mascota (perro, gato, conejo, etc.) y
dichas clases deberán heredar los atributos principales hacia las clases
hijas.

4. Desarrollar y trabajar con polimorfismo.


• Los tipos de mascotas como perros, gatos, conejos, etc., tienen métodos
de comportamiento semejantes, por ejemplo, todos tienen la función de
comer, pero se diferencian por el tipo de alimento. Para modelar este
comportamiento deberá usar la herencia y las funciones de polimorfismo
que usted crea necesario.

9
TRABAJO FINAL DEL CURSO

DESARROLLO DE LA SOLUCIÓN AL PROBLEMA PLANTEADO PARA LA VETERINARIA


SAFARI SAC.

1. DESARROLLO DE CONCEPTOS DE LA PROGRAMACIÓN ORIENTADA A


OBJETOS.

1.1. ¿Qué es la POO (Programación Orientada a Objetos)?

 La Programación Orientada a Objetos (POO) es un paradigma de


programación que se centra en el concepto de "objetos", que son
instancias de clases, y organiza el código alrededor de estos objetos.
Cada objeto tiene atributos (datos) y métodos (funciones) que
definen su comportamiento. La POO se basa en principios como
herencia, polimorfismo y encapsulación para facilitar la creación de
software modular, reutilizable y fácil de entender.

Imagen 1.- Este diagrama representa como se estructura una clase, que sería como una
plantilla que se puede instanciar a través de objetos, que serían los elementos creados en
base a la plantilla.

10
TRABAJO FINAL DEL CURSO

1.2. Clases y Objetos en Programación Orientada a Objetos (POO):

 En la Programación Orientada a Objetos (POO), las clases y los


objetos son conceptos fundamentales que permiten modelar y
organizar el código de manera más eficiente y comprensible.

1.2.1. Clases:

 Una clase es una plantilla o un modelo para crear objetos.


Representa un concepto abstracto que define tanto los atributos
(datos) como los métodos (acciones) que los objetos creados a partir
de la clase tendrán. Tiene atributos; son variables que representan
las características o propiedades de los objetos de la clase, pueden
admitir tipos de datos como cadenas de texto, números, etc. Y
métodos; estos son funciones que definen las acciones o
comportamientos asociados a los objetos de la clase.

1.2.2. Objetos:

 Un objeto es una instancia específica de una clase. Es una entidad


concreta que se crea a partir de una plantilla de clase y tiene sus
propios valores para los atributos de la clase. Al igual que la clase
posee atributos; son valores específicos para los atributos definidos
por su clase y métodos; que son funciones heredadas de la clase
que el objeto puede llamar para realizar alguna acción.

11
TRABAJO FINAL DEL CURSO

Imagen 2.- En esta ilustración podemos apreciar como creamos una clase” Animal”, de la que
se desprenderán los Objetos “Perro” y “Gato”, que obtendrán como atributos respectivamente
el nombre y la edad, finalmente introducimos unas funciones que pueden realizar cada animal
en los métodos Comer y Caminar.

1.3. Conceptos fundamentales en la Programación Orientada a


Objetos:

1.3.1. El Método Constructor:

 El método constructor es un tipo especial de método en una clase


que se llama automáticamente cuando se crea una instancia u objeto
de esa clase. Este método tiene la tarea de inicializar los atributos
del objeto y realizar cualquier configuración necesaria para que el
objeto esté en un estado coherente y utilizable.

 En muchos lenguajes de programación, el método constructor tiene


el mismo nombre que la clase. Por ejemplo, en Python, se llama
__init__.

 El método constructor puede aceptar parámetros que se utilizan para


inicializar los atributos del objeto. El primer parámetro, comúnmente
llamado self, hace referencia a la propia instancia del objeto.

 Una de las funciones principales del método constructor es asignar


valores iniciales a los atributos del objeto. Esto establece el estado
inicial del objeto proporcionando un punto de entrada para la
inicialización de objetos. Permite que la lógica de inicialización sea
compartida entre todas las instancias de la clase.

1.3.2. La Herencia:

 Es un mecanismo que permite que una clase, denominada subclase


o clase derivada, herede los atributos y métodos de otra clase
llamada superclase o clase base. La subclase puede extender o

12
TRABAJO FINAL DEL CURSO

modificar la funcionalidad heredada facilitando la reutilización del


código y la creación de jerarquías entre clases.

 Clase Base o Superclase; es la clase de la cual se heredan los


atributos y métodos. Puede contener implementaciones generales y
ser abstracta. Define un conjunto común de atributos y métodos que
pueden ser compartidos por varias subclases. Puede contener
métodos abstractos que deben ser implementados por las subclases.

 Clase Derivada o Subclase; es la clase que hereda de otra clase.


Puede añadir nuevos atributos y métodos o modificar los existentes,
hereda atributos y métodos de la clase base, además puede agregar
su propia implementación adicional y refleja una especialización o
extensión de la clase base.

Imagen 3.- En la imagen si seguimos secuencialmente el código y prestamos atención a los


comentarios (las letras en verde) podremos entender los conceptos de herencia aplicados.

1.3.3. El Polimorfismo:

 El polimorfismo es un concepto clave en la programación orientada a


objetos que permite que un objeto pueda tomar diversas formas o
comportarse de diversas maneras. Se basa en la capacidad de una
clase para proporcionar una interfaz común para sus objetos, pero
permitiendo que cada subclase tenga su propia implementación
específica.

13
TRABAJO FINAL DEL CURSO

 El polimorfismo de sobrecarga consiste en definir múltiples métodos


con el mismo nombre en una clase, pero con diferentes tipos de
parámetros o una cantidad diferente de parámetros. El compilador o
intérprete selecciona el método correcto según los argumentos
proporcionados.

 Una subclase proporciona una implementación específica para un


método que ya está definido en su superclase. El método en la
subclase tiene el mismo nombre, tipo de retorno y parámetros que el
método en la superclase.
 Algunas ventajas del polimorfismo son que ayuda con la flexibilidad y
extensibilidad del código.

Imagen 4.- En la imagen tenemos una clase padre que es Animal que posee el método
__str__ además del método comer, las subclases heredan estos métodos y lo implementaran
a su modo, esto es una definición corta de lo que es el polimorfismo.

14
TRABAJO FINAL DEL CURSO

Imagen 5.- Aquí podemos apreciar el método “__str__” y el método “comer” en la subclase
Mamífero, esto funcionaria como un “botón” igual que al presionarlo envia un mensaje que
permite que los objetos instanciados realicen una acción. El principal requisito para que sea
útil el polimorfismo aquí es que los objetos (los animales registrados) entiendan el mensaje
enviado, es decir deben poseer el método que invocamos, en este caso sobrescribe el
contenido de la cadena de acuerdo a los atributos propios de cada clase derivada, es decir si
el animal es un Mamífero Domestico lo más probable es que tendrá pelaje y si su alimentación
será omnívora/balanceada.

Entonces, resumiendo, el polimorfismo nos permite tratar diferentes tipos de objetos de


manera similar siempre y cuando entiendan el mensaje (invocación) que estamos enviando, es
decir, tengan el método necesario.

A. Configuración del entorno de trabajo:


Para fines de los requerimientos de la tarea encomendada optamos por utilizar el IDE
Visual Studio Code. En nuestro caso ya tenemos la aplicación instalada en nuestro
dispositivo, pero mostraremos a detalle como instalar y configurar la aplicación.

15
TRABAJO FINAL DEL CURSO

Imagen 6.- Ingresamos al enlace oficial https://code.visualstudio.com/ en nuestro


navegador de preferencia.

Imagen 7.- En nuestro


caso descargamos el
archivo de acuerdo a
nuestro sistema opera-
tivo, Windows 64 bits. Imagen 8.- Hacemos click en
el archivo descargado.

16
TRABAJO FINAL DEL CURSO

Imagen 9.- Seguimos todos los pasos de la instalación en Windows, es bastante


intuitivo, no seleccionamos ninguna configuración especial.

17
TRABAJO FINAL DEL CURSO

Imagen 10.- Descargamos Python (la última versión) desde el sitio web oficial
https://www.python.org/downloads/ luego procedemos a instalar, finalmente al abrir el Visual
Studio Code podemos instalar extensiones desde la pestaña vertical izquierda para facilitarnos
el trabajo a la hora de codificar.

18
TRABAJO FINAL DEL CURSO

Imagen 11.- En la siguiente secuencia de imágenes vemos como creamos nuestro


entorno de trabajo, Creamos una carpeta en Escritorio, la abrimos desde VSCode,
creamos un entorno virtual, creamos el archivo para trabajar e iniciamos a codificar.

19
TRABAJO FINAL DEL CURSO

B. Desarrollo de operaciones:

 Crearemos una clase padre llamada “Animal”, la usaremos como clase


principal, esto con la finalidad de crear clases derivadas o subclases que
puedan heredar atributos y/o métodos y registrar a los pacientes sin importar su
categoría (Domestico, Domestico de Granja o Exótico), la subcategoría
(Mamífero, Ave, Reptil y Pez) ni especie.

Imagen 12.- En esta imagen vemos como iniciamos el desarrollo de las operaciones
siguiendo los requerimientos de la tarea y agregando algunos otros bajo criterio propio.
Aquí creamos la clase padre o superclase Animal con sus respectivos atributos y
métodos.

20
TRABAJO FINAL DEL CURSO

Imágenes 13 y 14.- En estas imágenes podemos apreciar la creación de las clases


hijas, clases derivadas o subclases Mamífero, Ave, Reptil y Ave que heredan de la
clase padre Animal la mayoría de sus atributos y sus métodos, pero también
añadiremos sus propios atributos a la subclase e implementaran cada método a su
modo.

21
TRABAJO FINAL DEL CURSO

2. TRABAJAR CON ENCAPSULACIÓN Y OCULTAMIENTO DE LA


INFORMACIÓN:

2.1. ¿Qué es encapsulamiento en Python?

 El encapsulamiento es uno de los cuatro pilares de la POO (junto


con la herencia, el polimorfismo y la abstracción). Se trata de
agrupar los atributos y métodos que operan sobre esos datos en
una sola unidad llamada "clase". Las instancias de esta clase,
llamadas "objetos", encapsulan el comportamiento y los datos
relacionados en un solo lugar.
 Se refiere a la idea de ocultar los detalles internos de la
implementación de un objeto y exponer solo lo que es necesario
para interactuar con él.

Imágenes 15.- Diagrama explicando cómo funciona el encapsulamiento, desde la


interfaz de interacción accedemos a los métodos y atributos privados a través de
métodos públicos implementados en los objetos.

2.2. Principios Clave del Encapsulamiento:

2.2.1. Ocultamiento de la información:

 Se busca ocultar los detalles internos de la implementación


de una clase y proporcionar solo una interfaz pública. Esto
con el enfoque de que los usuarios de la clase no necesitan
conocer cómo se implementa internamente.

2.2.2. Acceso Controlado:

 Se define un nivel de acceso para los miembros de la clase


(atributos y métodos). Esto puede ser público, privado o
protegido. Los miembros privados solo son accesibles dentro
de la propia clase.

22
TRABAJO FINAL DEL CURSO

2.2.3. Mantenimiento de la consistencia:

 Al encapsular datos y métodos relacionados en una clase, se


facilita el mantenimiento y la actualización del código. Los
cambios internos no afectan a los usuarios de la clase
siempre que la interfaz pública permanezca constante.

2.3. Ventajas del Encapsulamiento:

2.3.1. Modularidad:

 Las clases encapsulan funcionalidades relacionadas, lo que


facilita el mantenimiento y la reutilización del código.

2.3.2. Seguridad:

 Creo que esta sería la ventaja más importante, el limitar el


acceso a ciertos miembros de la clase, se reduce el riesgo de
manipulaciones incorrectas de datos y se mejora la
seguridad.

2.3.3. Flexibilidad:

 Cambios internos en la implementación de una clase no


afectan a los usuarios si la interfaz pública permanece
inalterada.

3. TRABAJAR CON HERENCIAS Y COMPOSICIÓN:

 Creamos nuevas clases según la clasificación del animal, en este caso decidí
organizar los pacientes en categoría principal Animales Domésticos,
Domésticos de Granja y Animales Exóticos, y subcategorías Mamífero, Ave,
Reptil y Pez.

23
TRABAJO FINAL DEL CURSO

Imagen 16.- En esta imagen explicaremos como creamos instancias de las clases en la aplicación,
primero tomamos los datos tomados ingresados por el usuario en los campos Entry con los métodos.
get() de cada campo y lo asignamos a variables con nombres del mismo campo mostrado en la GUI.
Luego creamos un diccionario de subcategorías y clases correspondientes, esto con el fin de identificar
los atributos únicos de cada clase derivada, es decir el atributo pelaje para Mamíferos, plumaje para
Aves y escamas para Reptiles y Peces.

24
TRABAJO FINAL DEL CURSO

Imágenes 17 y 18.- Luego verificamos con un bloque condicional si la subcategoría está en el


diccionario, si se encuentra en el diccionario obtenemos la clase y los atributos específicos para luego
crear instancias
Imagen del tipo
16.- Aquí de animal
podemos correspondiente
apreciar la salida delque heredó en
programa loselatributos
terminalyde
métodos de la clase
VSCode.
padre Animal, estos se guardaran en el archivo “registroVeterinariaSafari.txt” y lo mostraremos en la
interfaz con el botón “Generar Reporte” que tiene como comando la función del mismo nombre.

25
TRABAJO FINAL DEL CURSO

4. DESARROLLAR Y TRABAJAR CON POLIMORFISMO:

 En programación orientada a objetos, el polimorfismo se refiere a la propiedad


por la que es posible enviar mensajes sintácticamente iguales a objetos de tipos
distintos.
 Aunque el mensaje sea el mismo, diferentes objetos pueden responder a él de
manera única y específica.
 Esta característica permite que, sin alterar ni tocar el código existente, se
puedan incorporar nuevos comportamientos y funciones (es decir la interfaz
sintáctica se mantiene inalterada, pero cambia el comportamiento en función de
qué objeto estamos usando en cada momento).
 El único requisito es que los objetos deben ser capaces de responder al
mensaje que se les envía, garantizando así una flexibilidad y extensibilidad en
el diseño del software.

26
TRABAJO FINAL DEL CURSO

IMPLEMENTACIÓN DE POLIMORFISMO EN LA APLICACIÓN VETERINARIA SAFARI

Imagen 19.- En nuestra aplicación Veterinaria Safari la primera forma de aplicación e implementación de
polimorfismo es con el método “comer” en la clase Animal. Decimos que el método “comer” en la clase
Animal se comporta de manera polimórfica ya que su implementación varía según el tipo de alimentación
del animal. Esto se logra mediante un diccionario “accion_alimentacion” que asigna acciones específicas a
cada tipo de alimentación. Al llamar a “animal.comer()”, obtenemos un comportamiento diferente según el
tipo de animal expresada en la cadena “f’{nombre del animal registrado} {tipo de mensaje mostrando el
tipo de alimentación según el elemento elegido en el ComboBox “alimentación”}’

Imagen 20.- Cada una de las clases derivadas implementa el método comer de manera específica para ese
tipo de animal, cada categoría de Animal tiene una lista de alimentación específica, eso se muestra a la
hora de instanciar un objeto. Al registrar un nuevo animal, obtienes el mensaje de alimentación utilizando el
método comer del objeto nuevo_animal. Esto muestra cómo el polimorfismo permite tratar a objetos de
diferentes clases de manera uniforme.

27
TRABAJO FINAL DEL CURSO

Imagen 21.- Al registrar un nuevo animal, obtienes el mensaje de alimentación utilizando el método
“.comer()” del objeto “nuevo_animal”. Esto muestra cómo el polimorfismo permite tratar a objetos de
diferentes clases de manera uniforme.

Imagen 22.- Lo mismo sucede con el método “__str__”, éste es una representación de cadena de texto
de la instancia de la clase. En las clases derivadas, sobrescribes este método para proporcionar una
representación específica de cada tipo de animal. Aquí, la llamada a super().__str__() recupera la
representación de la clase base (Animal), y luego se agrega información específica de la subclase
(Mamífero, Ave, etc.). Esto permite una representación legible y específica de cada tipo de animal.

Imagen 23.- Aquí utilizamos la función getattr() para acceder a los atributos de las instancias de las
clases derivadas (Mamífero, Ave, Reptil, Pez). Al utilizar getattr() con un valor predeterminado (“None”
en este caso), tratamos de manera uniforme la obtención de atributos, incluso si la subclase no tiene el
atributo específico. Esto evita errores si un atributo particular no está presente en una subclase. Este
enfoque muestra una forma de polimorfismo al tratar los atributos de las subclases de manera uniforme,
independientemente del tipo específico de animal

28
TRABAJO FINAL DEL CURSO

29
TRABAJO FINAL DEL CURSO

REFERENCIAS:

1. Wikipedia. (s. f.). Encapsulamiento (informática). Recuperado de


https://es.wikipedia.org/wiki/Encapsulamiento_%28inform%C3%A1tica%29

2. Wikipedia. (s. f.). Polimorfismo (informática). Recuperado de


https://es.wikipedia.org/wiki/Polimorfismo_(inform%C3%A1tica)

3. Platzi. (s. f.). Abstracción en POO. Recuperado de https://platzi.com/tutoriales/2034-


php-poo/11712-abstraccion-en-poo-2/

4. Universidad de Alicante. (2010). Programación Orientada a Objetos - 3: Herencia


(Documento de trabajo). Recuperado de
https://rua.ua.es/dspace/bitstream/10045/15995/1/POO-3-Herencia-10-11.pdf

5. Python Software Foundations. (2023). Documentación oficial de Tkinter. Recuperado


de https://docs.python.org/es/3/library/tkinter.html

6. Booch, G. (1990). Object-Oriented Analysis and Design with Applications.

30

También podría gustarte