Vous êtes sur la page 1sur 25

Sexto Ciclo – Electrónica

Industrial
Profesor: Fernando Novoa
Mail: d16330@idat.edu.pe
TEMA 2: PROGRAMACIÓN EN PYTHON
Semana 5: Introducción a Python
Semana 6: Programación estructurada
Semana 7: Programación orientada a objetos
Semana 8: Evaluación continua 2

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
ORGANIZACIÓN DE
TEMAS

1) ¿Qué P.O.O?
2) Métodos especiales
3) Herencia
4) Ya hemos utilizado la P.O.O

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
3
1/4 ¿QUÉ ES P.P.O?
- Definiciones
- Ejemplo

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
4
1/4 PROGRAMACIÓN
ORIENTADA A OBJETOS
DEFINICIONES

Programación Lineal: Es cuando un programa ejecuta una instrucción tras


otra de manera secuencial.

Programación Estructurada: Es cuando un programa ejecuta saltos o


repetición de instrucciones; debido a estructuras condicionales (if - else) y/o
estructuras iterativas (for y while) y/o funciones (def).

Programación Orientada a Objetos: Es cuando se plantean clases con las


que se crean objetos; los cuales poseen atributos (datos) y métodos
(funciones).

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
5
1/4 PROGRAMACIÓN
ORIENTADA A OBJETOS
CREANDO LA CLASE
Clase: Persona

Atributos:
Crear la clase Persona, con: - nombre
Atributo:
- nombre Métodos:
Métodos self
- inicializar (para cargar el atributo nombre) nom
- imprimir (para mostrar el atributo nombre). inicializar(self,nom)

self

imprimir(self)

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
6
1/4 PROGRAMACIÓN
ORIENTADA A OBJETOS
CREANDO LA CLASE
Clase: Persona

Atributos:
- nombre

Métodos:
self
nom
inicializar(self,nom)

self

imprimir(self)

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos Retornar: Pag. 8
7
1/4 PROGRAMACIÓN
Crear los objetos persona1 y persona2 de la
ORIENTADA A OBJETOS
clase Persona. CREANDO Y USANDO OBJETOS
Luego llamar a los métodos: Objeto 1: persona1
- inicializar (para cargar el atributo nombre) Atributos:
- nombre
- imprimir (para mostrar el atributo nombre) Métodos:

nom
Clase: Persona inicializar(nom)
Atributos:
- nombre
Métodos: imprimir()
self
nom
inicializar(self,nom) Objeto 2: persona2
self
Atributos:
- nombre
imprimir(self) Métodos:

nom
inicializar(nom)
Curso: Adquisición y procesamiento de señales
Tema 2: Programación en Python
imprimir()
Semana 7: Programación orientada a objetos
8
Objeto 1: persona1
1/4 PROGRAMACIÓN
Atributos:
ORIENTADA A OBJETOS
- nombre
Métodos:
CREANDO Y USANDO OBJETOS
nom
inicializar(nom)

imprimir()

Objeto 2: persona2

Atributos:
- nombre
Métodos:
nom
inicializar(nom)

imprimir()

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
9
1/4 PROGRAMACIÓN
ORIENTADA A OBJETOS
PROGRAMA COMPLETO

CREANDO LA CLASE

CREANDO Y USANDO OBJETOS

Curso: Adquisición y procesamiento de señales RESULTADO


Tema 2: Programación en Python VISIBLE EN
Semana 7: Programación orientada a objetos EL SHELL
10
1/4 PROGRAMACIÓN
ORIENTADA A OBJETOS
EJERCICIOS
1. Crear la clase alum, con: 2. Crear la clase rectangulo, con:
Atributos: Atributos:
- nombre - largo
- codigo - ancho
- notas (tipo lista) - perimetro
- prom - area
Métodos: Métodos:
- inicializar (para cargar el atributo nombre, - cargar (para cargar el atributo largo y
codigo y notas) ancho)
- promediar (para calcular y cargar el - calcular (para calcular y cargar los
atributo prom) atributos perímetro y area)
- imprimir (para mostrar todos los atributos) - imprimir (para mostrar todos los atributos)

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
11
2/4 MÉTODOS ESPECIALES
- Método constructor (__init__)
- Llamado con print (__str__)
- Llamados con operadores matemáticos
- Llamados con operadores relacionales

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
12
2/4 MÉTODOS ESPECIALES
MÉTODO CONSTRUCTOR (__init__)
El constructor es un método especial de una clase, se
define colocando doble guión bajo seguido de la palabra
init y seguido de otro doble guión bajo.
El objetivo fundamental del constructor es inicializar los
atributos del objeto que creamos.
Las características de implementar un constructor en
lugar del método inicializar (usado en la pag. 6) son:

1. Es el primer método que se ejecuta.


2. Se ejecuta automáticamente al crear un objeto.
3. No se puede invocar nuevamente
4. Recibe parámetros, pero no retornan datos.
5. Es un método opcional, pero es usual usarlo.

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
13
1/4 PROGRAMACIÓN
ORIENTADA A OBJETOS
MÉTODO CONSTRUCTOR (__init__)
EJERCICIOS:

1. Crear la clase alum, con: 2. Crear la clase rectangulo, con:


Atributos: Atributos:
- nombre - largo
- codigo - ancho
- notas (tipo lista) - perimetro
- prom - area
Métodos: Métodos:
- __init__ (para cargar el atributo nombre, - __init__ (para cargar el atributo largo y
codigo y notas) ancho)
- promediar (para calcular y cargar el - calcular (para calcular y cargar los
atributo prom) atributos perímetro y area)
- imprimir (para mostrar todos los atributos) - imprimir (para mostrar todos los atributos)

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
14
2/4 MÉTODOS ESPECIALES
LLAMADO CON PRINT (__str__)

El método __str__ se utiliza para ser


usado con la función print luego de
que se ha creado un objeto.

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
15
1/4 PROGRAMACIÓN
ORIENTADA A OBJETOS
LLAMADO CON PRINT (__str__)
EJERCICIOS:

1. Crear la clase alum, con: 2. Crear la clase rectangulo, con:


Atributos: Atributos:
- nombre - largo
- codigo - ancho
- notas (tipo lista) - perimetro
- prom - area
Métodos: Métodos:
- __init__ (para cargar el atributo nombre, - __init__ (para cargar el atributo largo y
codigo y notas) ancho)
- promediar (para calcular y cargar el - calcular (para calcular y cargar los
atributo prom) atributos perímetro y area)
- __str__ (para mostrar todos los atributos) - __str__ (para mostrar todos los atributos)

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
16
2/4 MÉTODOS ESPECIALES
LLAMADOS CON OPERADORES MATEMÁTICOS

En el ejemplo se observa la utilización del


método __add__ que es llamada con el
operador matemático +.

Para otros operadores, se tiene:

Para el operador +: __add__(self,objeto2)


Para el operador -: __sub__(self,objeto2)
Para el operador *: __mul__(self,objeto2)
Para el operador /: __div__(self,objeto2)

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
17
2/4 MÉTODOS ESPECIALES
LLAMADOS CON OPERADORES MATEMÁTICOS
EJERCICIOS:

1. Crear la clase censo, con los atributos ciudad (que registre el nombre de la ciudad) y pob (que
registre la cantidad de habitantes); luego crear 2 objetos (con los datos de 2 ciudades),
finalmente llamar al método __add__ (mediante el operador +), para determinar el total de
población de ambas ciudades.
2. Crear la clase producto, con los atributos nom (que registre el nombre del producto) y precio
(que registre el precio del producto); luego crear 2 objetos (con los datos de 2 productos),
finalmente llamar al método __add__ (mediante el operador +) y __sub__ (mediante el
operador -), para determinar el precio total y la diferencia de precios, respectivamente.
3. Lo mismo que la pregunta 1, pero para 3 ciudades.

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
18
2/4 MÉTODOS ESPECIALES
LLAMADOS CON OPERADORES RELACIONALES
En el ejemplo se observa la utilización del
método __eq__ que redefine la operación
relacional ==.

Para otros operadores, se tiene:

Para el operador ==: __eq__(self,objeto2)


Para el operador !=: __ne__(self,objeto2)
Para el operador >: __gt__(self,objeto2)
Para el operador >=: __ge__(self,objeto2)
Para el operador <: __lt__(self,objeto2)
Para el operador <=: __le__(self,objeto2)

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
19
2/4 MÉTODOS ESPECIALES
LLAMADOS CON OPERADORES RELACIONALES
EJERCICIOS:

1. Crear la clase aula, con los atributos nombre (que registre un nombre de estudiante) y apellido
(que registre un apellido); luego crear 2 objetos (con los datos de 2 ciudades), finalmente llamar
al método __eq__ (mediante el operador ==), para determinar si dos estudiantes tienen el
mismo nombre.
2. Crear la clase ninios, con los atributos nom (que registre el nombre del niño) y edad (que registre
la edad del niño); luego crear 2 objetos (con los datos de 2 niños), finalmente llamar al método
__gt__ (mediante el operador >), para determinar quien de los niños es mayor.
3. Lo mismo que la pregunta 2, pero determinar el mayor de 3 niños.

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
20
3/4 HERENCIA

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
21
3/4 HERENCIA

La herencia significa que se pueden crear


nuevas clases que pueden tener todos los
atributos y métodos de otra clase.

La clase que hereda los atributos y métodos


(de su clase padre) se denomina clase hija,
la cual también puede tener sus propios
atributos y métodos.

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
22
3/4 HERENCIA
EJERCICIOS
1. Crear la clase padre poligono, con: 2. Crear la clase padre curso, con:
Atributos: Atributos:
- base - cod_curso
- altura - notas (tipo lista)
- nota_final
- area
Métodos:
Métodos: - __init__
- __init__ - imprimir (para mostrar todos los atributos)
- imprimir (para mostrar todos los atributos)
Crear la clase hija matematicas, con:
Crear la clase hija rectangulo, con: Métodos:
Métodos: - calcular (para calcular la nota_final como el
- calcular (para calcular el area) promedio de todas las notas)
Crear la clase hija historia, con:
Crear la clase hija triangulo, con:
Métodos:
Métodos: - calcular (para calcular la nota_final como el
- calcular (para calcular el area) promedio de notas descartando la menor)
Crear la clase hija lenguaje, con:
Curso: Adquisición y procesamiento de señales Métodos:
Tema 2: Programación en Python - calcular (para calcular la nota_final como la
Semana 7: Programación orientada a objetos máxima de las notas)
23
4/4 YA HEMOS UTILIZADO LA P.O.O.

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
24
4/4 YA HEMOS UTILIZADO LA P.O.O.

Cuando se crea un dato, este en


realidad es un objeto y la clase es el
tipo de dato posee atributos y
métodos; y se accede a ellos
mediante el operador punto (.)

Curso: Adquisición y procesamiento de señales


Tema 2: Programación en Python
Semana 7: Programación orientada a objetos
25

Vous aimerez peut-être aussi