Clases y objetos en python (Programacion Orientada a Objetos)

Documentos relacionados
INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

MANUAL DE RUBY (PARTE V) Luis José Sánchez González

Conversión entre Tipos

PROGRAMACION ORIENTADA A OBJETOS EN C++

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.

Introducción a C++ y Code::Blocks

Programación Orientada a Objetos (POO)

Java Avanzado Facultad de Ingeniería. Escuela de computación.

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

INSTITUCION EDUCATIVA MANUEL ANGEL ANACHURY AREA: TECNOLOGIA E INFORMATICA

Programación Orientada a Objetos. Sesión 4: Herencia

Programación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia

Aprendemos a crear un blog

Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

CREACIÓN DE UNA PÁGINA WEB CON JIMDO

TUTORIAL SOBRE HOJAS DE CALCULO

COBHTTPD-CGILIB. Librería para creación de Paginas web Dinámicas con COBOL. Manual de Templates. COBHTTPD Manual de Templates

LABORATORIO Nº 6 SUMA DE DOS NUMEROS EN POWER BUILDER

Unidad IV: Programación del lado del cliente

EBRARY. Descripción general de la base Permite el acceso a más de 31,800 libros electrónicos en texto completo de múltiples disciplinas.

Tema: Herramientas UML, Análisis y diseño UML

Evaluación Diagnóstico puesta en común. Escuela Técnica ORT - TIC

Twitter Qué es Twitter?

Clase 1 Excel

b) Qué tipo de variable son las de la línea 6? Cuál es su visibilidad? Explique su

Pasos a seguir para crear una aplicación visual en el lenguaje de programación Java con Netbeans IDE.

Tema: Introducción al IDE de Microsoft Visual C#.

INSTITUCIÓN MANUEL MARÍA SÁNCHEZ Tecnología e Informática Word

Curso de Python Inicial

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Modulo 11. Clases y Objetos en Java

Diagramas de secuencia

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Algoritmos y programas. Algoritmos y Estructuras de Datos I

1

LEER Y ESCRIBIR ARCHIVOS DE TEXTO CON PHP. FUNCIONES FOPEN (MODOS), FGETS, FPUTS, FCLOSE Y FEOF. EJEMPLOS (CU00836B)

Curso Excel Básico 2003 Unidad 1

GUÍA RÁPIDA POLIGONALES CON TRIMBLE SURVEY CONTROLLER

Acceder al backend de la web

FORMATO CONDICIONAL EN EXCEL

Qué es una tabla dinámica? Para qué sirve una tabla dinámica?

Programación en Visual Basic Ricardo Rodríguez García

Computación Avanzada Clase 3. Mauricio Hidalgo Barrientos

Manual de Windows XP Copyleft - Jorge Sánchez 2005

Dos formas de devolver una colección con un Data Provider

MANUAL DE PROGRAMACIÓN PARA BASES DE DATOS 1.0 MySQL

UTILIDAD DE CSS EN DESARROLLOS WEB JUNTO A HTML Y JAVASCRIPT. APLICAR ESTILOS. EJEMPLO SENCILLO. (CU00732B)

Interfaces y Clases Internas. ELO329: Diseño y Programación Orientados a Objetos

Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar.

Tipos de datos estructurados

ESCUELA DE INFORMÁTICA

Una actividad de prueba con Edilim

Procesos e Hilos en C

Cristian Blanco

ASP.NET MVC 3 ofrece una serie de herramientas y funciones para construir una aplicación utilizando sólo la definición de los objetos del modelo.

Sesión No. 10. Contextualización INFORMÁTICA 1. Nombre: Gestor de Base de Datos (Access)

Gestión de bases de datos de mysql desde Dreamweaver

Si salgo temprano hoy, me voy al cine.

Overview GeneXus - Demo: 2.Cómo obtener el ejecutable de la KB y declaración de algunas reglas del negocio.

PROGRAMAS PARA LA CLASSPAD MANAGER.

Tipos de Datos de python (1ª parte):

Las plantillas permiten definir funciones genéricas.

Listas Desplegables (o Cuadros Combinados)

En esta lección vamos a ver más utilidades y opciones sobre la

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Manual de OpenOffice Impress

5.3 CREAR FORMULARIOS

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

Todas las tareas que se realizan en un computador implican el uso de archivos y carpetas.

1. Instalar el componente en el sitio por Extensiones gestor de extensiones.

MOODLE 1.9 BASE DE DATOS

6. Vectores. 1. Introducción. 2. Declaración (I) Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos.

Unidad 2. Elementos de Word2007 (I)

BLOQUE I: HOJA DE CÁLCULO

Demo: empezando a desarrollar la aplicación en su parte web

Conozcamos un poco la página WEB que crearemos en WordPress.

Una base de datos de Access puede estar conformada por varios objetos, los más comunes son los siguientes:

Introducción a Swing. Taller de Programación 2016

MÁS CONTENIDO WEB 2.0

Crear imagen con Windows XP, SP2 y actualizaciones críticas con NLite

La clase String

CREAR UN BLOG EN BLOGGER

GOOGLE SITES INICIAL

TUTORIAL CVS. PASO 1: Comenzamos instalando el servicio con apt-get install cvs cvsd

La sintaxis básica para definir una clase es la que a continuación se muestra:

Forma Básica Clase Java

Georreferenciaciónn Con GIS y los complementos GeoCoding y OpenLayers Plugin

Crear gráficos en Excel Un gráfico es la representación gráfica de los datos de una hoja de cálculo y facilita su interpretación.

Cómo instalar Java en Windows 7 y Vista

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

CAPITULO 2. COMPRENDER LAS DEFINICIONES DE CLASE

1.- CREAR UNA BASE DE DATOS CON ACCESS

Transcripción:

Clases y objetos en python (Programacion Orientada a Objetos) pythondiario.com /2014/10/clases-y-objetos-en-python-programacion.html Python es un lenguaje de programación orientada a objetos (POO). La programación orientada a objetos tiene sus raíces en la década del 60, pero es en los 80 que se convierte en el principal paradigma de la programación de un nuevo software. Hasta ahora los ejercicios y ejemplos que he utilizado han sido utilizando la programación funcional (realizando funciones que den solución a los problemas). En la programación orientada a objetos la atención se centra en la creación de objetos que contienen los datos y funcionalidad juntos. Definiciones necesarias: Qué es un Objeto? Los objetos son la clave para entender la Programación Orientada a Objetos. Si miramos a nuestro alrededor encontraremos un sin fin de objetos de la vida real: perro, escritorio, televisor, bicicleta, etc... Programación Orientada a Objetos Qué es un Atributo? Los atributos o propiedades de los objetos son las características que puede tener un objeto: Si el objeto fuera Perro, los atributos podrían ser: tamaño, edad, color, raza, etc... Qué es un Método? Los métodos son la acción o función que realiza un objeto. Si nuestro objeto es Perro, los métodos pueden ser: caminar, ladrar, saltar, dormir, etc... Qué es una Clase? Con todos los conceptos anteriores explicados, se puede decir que una clase es una plantilla genérica de un objeto. La clase proporciona variables iniciales de estado (donde se guardan los atributos) e implementaciones de comportamiento (métodos) Qué es una Instancia? Ya sabemos que una clase es una estructura general del objeto. Por ejemplo, podemos decir que la clase Mascota necesita tener un nombre y una especie, pero no nos va a decir cual es el nombre y cual es la especie, es aquí donde entran las instancias. Una instancia es una copia específica de la clase con todo su contenido. Ejemplo: Mateo = Mascota ("Mateo", "Gato") Aquí podemos decir que Mateo es una instancia de la clase Mascota. Las clases nos dan la posibilidad de crear estructuras de datos más complejas. En nuestro ejemplo crearemos una clase Mascotas que realizará un seguimiento del nombre y la especie (que pasaremos como atributos).

Ejemplo de clases y objetos en python: Como definir una clase en Python Linea 5 class Mascota(object): Aquí es donde empezamos a crear nuestra clase (lo hacemos con la palabra class). La segunda palabra ( Mascota) es el nombre que le daremos a nuestra clase. La tercera palabra que se encuentra dentro de los paréntesis (object) se conoce con el nombre de herencia (mas tarde hablaré sobre el concepto de herencia). Lo que debemos saber es que "object" es una variable especial en python que se utiliza de herencia cuando creamos una nueva clase en python. Lineas 7-9 Estructura de una Clase Definiendo clase Mascota en Python def init (self, nombre, especie): ----self.nombre = nombre ----self.especie = especie Cuando creamos una nueva mascota, necesitamos inicializarla con un nombre y una especie. El

método init (método especial para las funciones que forman parte de una clase) es una función especial en python que inicializa la clase con los atributos que nosotros le pasemos. Por ejemplo: si corremos el código Teo = Mascota("Teo", "Perro"), el método init es llamado con los valores Teo, "Teo" y "Perro" en las variables self, nombre y especies, respectivamente. La variable self es una instancia de la clase y es bueno aclarar que no es una palabra reservada de python, cualquier etiqueta utilizada como primer parámetro tendría el mismo valor (se desaconseja el uso de otras etiquetas por un tema de convención). O sea que, cada vez que declaremos un método en python, vamos a tener que agregarle la variable self para que cuando sea invocado el método, Python pase el objeto instanciado y opere con los valores actuales de esa instancia. También en estas líneas almacenamos el atributo nombre en el parámetro nombre (self.nombre = nombre) y también (self.especie = especie). Lineas 11-15 def darnombre(self): ---- return self.nombre def darespecie(self): ---- return self.especie Podemos definir métodos que necesitemos para mostrar e interactuar con los contenidos de las instancias. El método darnombre toma una instancia de la clase Mascota y nos devuelve el nombre de la misma. Lo mismo pasa con el método darespecie. Una ves mas necesitamos el parámetro self para que la función sepa con que instancia de Mascota trabajar y así poder averiguar su contenido. Lineas 17-18 def str (self): ---- return "%s es un %s" % (self.nombre, self.especie) El método str es una función especial de python (nos podemos dar cuenta de que los métodos especiales de python comienzan y terminan con un doble guión bajo). Este método nos proporciona una cadena (informal) de la representación del objeto. En nuestro caso, si definimos la instancia Teo = Mascota("Teo", "Perro"), el método str nos va a devolver la cadena: Teo es un Perro. Interactuando con nuestra primera clase Mascota Ahora vamos a ver como podemos interactuar en consola con la clase Mascota que hemos creado. Para hacer esto debemos abrir la consola y pararnos en el directorio donde tenemos guardado nuestro archivo Mascotas.py. Una ves ahí escribimos "python" para abrir el shell interactivo de python. Lo primero que hacemos es importar la clase Mascota del archivo Mascotas.py Luego creamos una instancia de la clase Mascota y la llamamos tito >>>tito = Mascota("Tito", "Perro") Después devolvemos la cadena "Tito es un Perro" de dos maneras diferentes: la primera con el nombre de la instancia + el método: >>>print "Tito es un %s" % tito.darespecie() La segunda: llamamos la clase + el método y le pasamos entre paréntesis la instancia (tito) >>>print "Tito es un %s" % Mascota.darEspecie(tito) El último print nos arroja un error porque necesitamos pasar la instancia (tito).

Otros ejemplos de la clase Mascota Para probar seguimos utilizando la consola de python y el archivo llamado Mascotas.py donde se encuentra nuestra clase Mascota: Ejemplo 1 >>>rocco = Mascota("Rocco", "Perro") >>>rocco.darnombre() "Rocco" >>>rocco.darespecie() "Perro" >>>print rocco Rocco es un Perro Ejemplo 2 Interactuando con la clase Mascota

>>>tito = Mascota("Tito", "Gato") >>>tito.darnombre() "Tito" >>>tito.darespecie() "Gato" >>>print tito Tito es un Gato Ejemplo 3 >>>pepe = Mascota("Pepe", "Pato") >>>pepe.darnombre() "Pepe" >>>pepe.darespecie() "Pato" >>>print pepe "Pepe es un Pato" Crear subclases de la clase Mascota (herencia) A veces no nos alcanza definiendo solo una clase como Mascota. Por ejemplo, algunas mascotas pueden ser perros y a la mayoría de ellos les gusta perseguir gatos, y tal ves nosotros queramos saber a que perro le gusta perseguir los gatos y a que perro no. Podemos hacer otra clase Perro que va a heredar la clase Mascota, esto no solo nos dará la estructura de la clase Mascota, si no que también podremos agregar una estructura específica para la clase Perro. Clase Perro en python Clase Perro: Definimos la clase con la palabra class seguido del nombre de la clase (en nuestro caso Perro) y luego entre paréntesis colocamos la clase que queremos heredar (en nuestro caso es la clase Mascota). Queremos especificar que toda la clase perro va a tener como especie "Perro" y también si al perro le gusta perseguir a los gatos. Para ello debemos escribir la función de inicialización propia. También tenemos que llamar a la función de inicialización de la clase padre porque queremos que el nombre y la especie se inicialicen. Podemos definir una subclase igual para los gastos: Clase Gato en python

Examinando diferencias entre Perro y Mascota:, Perro >>>mascota = Mascota("Falucho", "Perro") >>>perro = Perro("Falucho", True) La función que se utilizará a continuación (isinstance), es una función especial que chequea si una instancia es de un determinado tipo de clase. Podemos ver que mascota es una instancia de Mascota, y perro es una instancia de las dos clases ( Mascota, Perro). >>>isinstance(mascota, Mascota) True >>>isinstance(mascota, Perro) False >>>isinstance(perro, Mascota) True >>>isinstance(perro, Perro) True Esto se da porque mascota es una Mascota, pero no un Perro, no podemos llamar la función persiguegatos porque la clase Mascota no tiene este método. Pero si podemos llamar el método persiguegatos en perro porque se define para la clase Perro. Si podemos llamar el método darnombre en mascota y perro porque los dos son una instancia de Mascota aunque darnombre no esté definido explícitamente en la clase Perro (hereda de Mascota sus métodos). Perros y Gatos Crearemos algunos gatos y perros: >>> from Mascotas import Gato, Perro >>> pluto = Perro("Pluto", True) >>> snoopy = Perro("Snoopy", False) >>> tom = Gato("Tom", True) >>> felix = Gato("Felix", False) >>> print pluto Pluto es un Perro >>> print snoopy Snoopy es un Perro >>> print tom Tom es un Gato >>> print felix Felix es un Gato >>> print "%s persigue gatos: %s" % (pluto.darnombre(), pluto.persiguegatos()) Pluto persigue gatos: True >>> print "%s persigue gatos: %s" % (snoopy.darnombre(), snoopy.persiguegatos()) Snoopy persigue gatos: False >>> print "%s odia los perros: %s" % (tom.darnombre(), tom.odiaperros()) Tom odia los perros: True >>> print "%s odia los perros: %s" % (felix.darnombre(), felix.odiaperros()) Felix odia los perros: False