Clases en Python

¿Qué es Python?

Es un lenguaje interpretado o de script,  fuertemente tipado y con tipado dinámico. Python es un lenguaje multiplataforma, lo que nos permite descargar el intérprete para distintos sistemas operativos y también es orientado a objetos.

¿Por qué elegir Python?

Por su sintaxis simple, clara y sencilla.  Además tiene una gran cantidad de librerías disponibles y los programas elaborados en Python parecen pseudocódigo, esto facilita su aprendizaje.

Algunos casos de éxito en el uso de Python son:

Casos de éxito con Python

Casos de éxito con Python

Orientación a objetos

  • Clases y objetos

Objeto:  Es una entidad que agrupa un estado y una funcionalidad relacionados. El estado del objeto se define a través de variables llamadas atributos, mientras que la funcionalidad se modela a través de funciones a las que se les conoce con el nombre de métodos del objeto.

Clase: No es más que una plantilla genérica a partir de la cuál instanciar los objetos; es la que define qué atributos y métodos tendrán los objetos de esa clase.

Los siguientes ejemplos están basados en las clases que componen un juego de ajedrez, construido a partir de la biblioteca pygame http://www.pygame.org.

A continuación se presenta como crear una clase en Python, en este ejemplo utilizamos una clase que simula un tablero de ajedrez, para inicializar los atributos del objeto crearemos el método __init__.

Clase Tablero de ajedrez en Python

Clase Tablero de ajedrez en Python

Los métodos que empiezan y terminan con un par de guiones bajos son llamados “métodos especiales”, a estos métodos no se les invoca directamente; Python lo hace cuando aplicas cierta sintaxis sobre la clase o una instancia suya.

Para crear instancias de la clase tablero, solamente basta escribir:

Instancia en Python

Instancia en Python

  • Herencia

Herencia: En un lenguaje orientado a objetos cuando hacemos que una clase (subclase) herede de otra clase (superclase) estamos haciendo que la subclase contenga todos los atributos y métodos que tenía la superclase.

Al acto de heredar de una clase también se le llama a menudo “extender una clase”.

Ejemplos:             

Creamos la clase Pieza para representar las piezas de juego de ajedrez.

Clase Pieza de ajedrez en Python

Clase Pieza de ajedrez en Python

En Python para indicar que una clase hereda de otra solo basta con poner el nombre de la clase  a heredar como parámetro de la clase que hereda. En este caso creamos una clase Torre que hereda de  la clase Pieza, ya que la torre es una pieza de ajedrez.

Clase Torre en Python

Clase Torre en Python

De igual forma la clase Alfil hereda de la clase Pieza.

Clase Alfil en Python

Clase Alfil en Python

Herencia múltiple: En Python, a diferencia de otros lenguajes como Java, se permite la herencia múltiple, es decir, una clase puede heredar de varias clases a la vez.

Ejemplo:

En un juego de ajedrez los movimientos que puede realizar la pieza dama(reina) equivale a los movimientos del alfil más los  movimientos de la torre.

Herencia múltiple en Python

Herencia múltiple en Python

Este ejemplo muestra como funciona la herencia múltiple, por que la clase Dama puede heredar de la clase Torre y la clase Alfil, ya que comparte los movimientos de esas piezas.

Clase Dama en Python

Clase Dama en Python

  • Polimorfismo

Se refiere a la habilidad de objetos de distintas clases de responder al mismo mensaje. Esto se puede conseguir a través de la herencia: un objeto de una clase derivada es al mismo tiempo un objeto de la clase padre, de forma que allí donde se requiere un objeto de la clase padre también se puede utilizar uno de la clase hija.

A diferencia de lenguajes de tipado estático como Java o C++, el polimorfismo en Python no es de gran importancia.

  • Encapsulación

Se trata de definir cuáles de los atributos del objeto son privados o públicos, los atributos privados sólo pueden ser manipulados por el objeto, mientras que los atributos públicos pueden ser alcanzados desde el exterior del objeto.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s