PDF de programación - Curso de Python Inicial - Clases

Imágen de pdf Curso de Python Inicial - Clases

Curso de Python Inicial - Clasesgráfica de visualizaciones

Actualizado el 16 de Abril del 2020 (Publicado el 2 de Diciembre del 2018)
1.936 visualizaciones desde el 2 de Diciembre del 2018
1,2 MB
37 paginas
Creado hace 11a (10/04/2013)
Logo
IAA-CSIC

Curso

organizado por
el Gabinete de
Formación del

CSIC

Curso de Python Inicial

Clases

Contenidos

1. Paradigmas de la Programación
2. Programación Orientada a objetos
3. Clases
4. Objetos
5. Encapsulación
6. Herencia
7. Funciones para clases y objetos
8. Métodos internos de la clase (builtin-methods)

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



2

Paradigmas de Programación

Un paradigma es el resultado de un proceso social en el cual un
grupo de personas desarrolla nuevas ideas y crea principios y prácticas
alrededor de estas ideas.

Resumiendo: un paradigma es una metodología de trabajo.

• En programación, se trata de un enfoque concreto de desarrollar y

estructurar el desarrollo de programas.

• Hasta el momento, el trabajo que han realizado ha obedecido al

paradigma de programación imperativa.

• En esta presentación, introduciremos la programación imperativa

(aunque a estas alturas del curso no le sonará a algo nuevo) y
desarrollaremos el paradigma orientado a objeto a través de
Python.

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



3

Paradigmas de programación:

Imperativo

Paradigma imperativo

• Consiste en una secuencia de instrucciones que el ordenador debe

ejecutar.
Los elementos más importantes en esta forma de programar son:
1. Variables, zonas de memoria donde guardamos información.
2. Tipos de datos, son los valores que se pueden almacenar.
3. Expresiones, corresponde a operaciones entre variables (del mismo o





distinto tipo)

4. Estructuras de control, que permiten ejecutar un conjunto de

instrucciones varias veces, ejecutar una parte del código u otra en
función de que se cumpla una condición o abortar la ejecución del
programa.

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



4

Paradigmas de programación:

Funcional

Pese a que trabajamos con funciones, el modelo desarrollado
hasta ahora no verifica todos los requisitos del paradigma de
programación funcional ya que, en nuestro caso existe el
concepto de variable, que no se da en programación
funcional.

Sí que verificamos que:
• Nuestros programas pueden hacer uso de funciones que

realizan su tarea como si de una caja negra se tratase:
metemos parámetros de entrada y obtenemos algo a la
salida.

• Nuestras funciones pueden servir como parámetros de

entrada para otras funciones.

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



5

Paradigmas de programación:

Orientado a Objetos

• Es el más popular en la actualidad.
• Se fundamenta en la “fusión” de datos y

funciones que operan sobre esos datos dentro
de un nuevo tipo de dato.

• Al nuevo tipo de dato se le llama CLASE.
• A cada variable de una clase se le llama

OBJETO.

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



6

Paradigmas de programación:

Orientado a Objetos (I)

Propiedades del paradigma orientado a objetos
1. Encapsulamiento

– Significa que los datos pertenecen a un objeto (espacio de nombres del

objeto).

– Podemos ir más allá y ocultar los datos de un objeto a cualquier otro objeto o
código que trate de hacer uso de ellos. Serían sólo accesibles al propio objeto
y, en algunos casos, a objetos de sus clases descendientes.

2. Herencia

– Es la propiedad de crear nuevos datos a partir de los ya existentes

(progenitores). Heredamos sus atributos y métodos. Podemos sobrescribirlos
para adaptarlos a la clase heredada (clase hija).

3. Polimorfismo

– Hace referencia a la llamada de una función de una clase por parte de un

objeto. Cuando se produce, se ejecuta la correspondiente al tipo del objeto
que lo llama, no al de sus progenitores.

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



7

Clases

Una clase es un nuevo tipo de dato. Contiene :
– otros datos (que pueden ser de cualquier tipo)
– Funciones, que operan sobre esos datos.


código_de_la_clase

Se declaran en el código de la siguiente forma:
class Nueva_clase (object):

Donde el código_de_la_clase incluye la
declaración de variables y funciones.
• object es la clase base para cualquier objeto creado

en Python.

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



8

Clases (I): Atributos

• Las variables incluidas en una clase se

denominan ATRIBUTOS.

• Existen múltiples formas de crear atributos en

una clase. La más simple:

class Nueva_clase (object):



10/04/2013

atributo1 = valor1

atributo2 = valor 2



César Husillos Rodríguez

Víctor Terrón Salas



9

Clases (II): Métodos

Las clases pueden contener funciones. A éstas se les denomina
MÉTODOS.
La forma de crearlos en Python es en la declaración de la clase
class Nueva_clase(object):



def metodo1(self,[parametros]):



codigo_metodo1


donde self
• Es el primer parámetro de cualquier método.
• Hace referencia a la propia clase (y a su contenido).
• Nunca se pasa como parámetro cuando se llama a un método. Es

un parámetro implícito.

La llamada a este método en el código se haría tras la creación de un
objeto. La sintaxis:

Objeto.metodo1([parametros])

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



10

Clases (III): Creación de objetos

Una vez definida la clase, crear un objeto es tarea sencilla.
Basta con ejecutar la instrucción de asignación

objeto = Nombre_clase ()

donde objeto será una nueva variable del tipo
Nombre_clase.


10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



11

Clases (IV): Inicialización de atributos

La clase anterior es un buen ejemplo para
empezar, pero no sirve de mucho desde un
punto de vista práctico.
Vamos a complicarlo un poco. Crearemos una
clase en la que, al declarar un objeto,
inicialicemos sus atributos.
¿Cómo?

Mediante el método implícito de la clase
__init__

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



12

Clases (IV): Inicialización de atributos

__init__

• es la primera función que se ejecuta al crear

un objeto, y lo hace de forma automática.
Para los programadores de C++ o JAVA, éste
sería su constructor.

• Podemos crear allí los atributos de la clase y

pasarle los valores con los que inicializarlos en
el momento de crear cada objeto.



10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



13

Clases (IV): Inicialización de atributos

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



14

EJERCICIOS: 1,2,3,4 Y 5

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



15

Encapsulación

“Significa que los datos pertenecen a un objeto (espacio de
nombres del objeto).

Podemos ir más allá y ocultar los datos de un objeto a
cualquier otro objeto o código que trate de hacer uso de ellos.
Serían sólo accesibles al propio objeto y, en algunos casos, a
objetos de sus clases descendientes.”

• Python implementa bien el nivel de ocultación de variables,

pero no es efectivo en cuanto a la protección de las
variables ocultas de accesos externos.

• Según el manual de “Guía de aprendizaje de Python”

(Guido van Rossum):

Las clases de Python no ponen una barrera absoluta entre la definición y el usuario, sino
que más bien se fían de la buena educación del usuario para no “invadir la definición”.

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



16

Encapsulación (II)

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



17

EJERCICIOS: 6

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



18

Herencia

“Es la propiedad de crear nuevos datos a partir de los ya
existentes (progenitores). Heredamos sus atributos y
métodos. Podemos sobrescribirlos para adaptarlos a la
clase heredada (clase hija).”

• La herencia es el mecanismo de reutilización de código

por excelencia en Programación Orientada a Objetos.

• Sirve para ampliar, particularizar o mejorar

determinadas clases en otras nuevas. Las clases
padre/madre siguen vigentes, por lo que no es
necesario retocar el código que ya funcionaba.

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



19

Herencia: ¿Cómo se hace en Python?

Dada una clase Madre podemos crear otra clase
Hija de la siguiente forma:
class Hija(Madre):

codigo_hija


• El código de la hija puede sobreescribir

métodos de la madre e introducir nuevos
atributos, si se necesitan.

• Según se ve, toda clase que hemos creado

hasta ahora es hija de la clase object.

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



20

Herencia + Sobrecarga de métodos

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



21

Herencia y nuevos atributos

Cuando la clase hija tiene nuevos atributos

¿Cómo los inicializamos?

Tenemos 2 posibilidades:
1. Iniciamos todos

– Sencillo en el caso de pocos atributos.

2. Utilizamos la inicialización de la clase madre para

los atributos heredados y nueva inicialización
para los nuevos.
– Implica un diseño más elaborado, pero una

programación orientada a objetos más reutilizable y
organizada.

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



22

Herencia y nuevos atributos (II)

En el caso 1: sobrecargamos el constructor (__init__) de
la clase hija para redefinir toda la inicialización.


10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



23

Herencia y nuevos atributos (III)

En el caso 2: llamamos al constructor de la clase madre y le pasamos los
parámetros necesarios. El resto se inicializa en el constructor de la hija.


El constructor de la clase madre se llama de la siguiente forma:

super(clase_hija, self).__init__([parametros])

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



24

EJERCICIOS: 7 Y 8.

10/04/2013

César Husillos Rodríguez

Víctor Terrón Salas



25

Herencia múltiple

Podemos heredar de más de una c
  • Links de descarga
http://lwp-l.com/pdf14390

Comentarios de: Curso de Python Inicial - Clases (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad