Skip to main content
Curso Python 3.5

Curso Python – tema 12 – Redefinición de operadores con objetos

En Python podemos redefinir los operadores cuando trabajemos con objetos para facilitar nuestro trabajo

Como ya vimos al principio de este curso, en python tenemos a nuestra disposición los operadores matemáticos y los operadores relacionales.

Además podemos redefinir estos operadores cuando planteamos una clase.

 

Operadores matemáticos

Operador +

Operador –

Operador *

Operador //

Operador /

 

Vamos a ver un ejemplo para aclararnos un poco más en cómo podemos utilizar estos operadores.

Crear una clase Jugador con los atributos nombre y puntos. Crear un segundo método __add__ para sumar los puntos de los jugadores. Crear al menos dos objetos de la clase Jugador e informar del total de puntos encestados.

 

Creamos nuestra clase Jugador con los métodos que decíamos antes.

 

Con el método __add__ podemos realizar la suma de varios elementos y obtener dicho resultado tan sólo imprimiendo la suma en este caso.

Vemos que esto puede resultarnos realmente útil aunque no será así en todos los casos, dependerá de las funcionalidades de nuestro programa.

 

Operadores relacionales

Operador ==

Operador !=

Operador >

Operador >=

Operador <

Operador <=

 

El funcionamiento es muy parecido a los operadores matemáticos. En este caso vamos a realizar el mismo ejercicio pero comparando si los dos jugadores han anotado la misma cantidad de puntos.

 

Utilizamos la función __eq__ en la clase para obtener la funcionalidad que queremos obtener

 

Aquí ya estamos comparando la cantidad de puntos de los jugadores, de tal manera que al comparar los objetos

Ya estaríamos comparando los puntos y obtendríamos el resultado comparando simplemente ambos objetos.

 

 

Problemas propuestos

Ejercicio 1

Desarrollar un programa con una clase llamada Lista. Tendrá como atributo una lista. Redefinir los operadores de suma, resta, multiplicación y división respecto a un valor entero.

Ver

 

Ejercicio 2

Desarrollar un programa que tenga una clase llamada Rectángulo. Definir para la clase dos atributos menor y mayor (estos corresponderán a los lados del rectángulo). Redefinir todas las funciones de los operadores relacionales mencionados. Hacer la comprobación desde el bloque principal con al menos uno de los operadores redefinidos.

Ver

 

Además tenéis la lista completa de ejercicios en nuestro repositorio en github.

Con esto acabamos el doceavo capítulo de nuestro curso de python 3.5. Si tienen cualquier duda relacionada con el contenido explicada en este capítulo, pueden exponerla en sus comentarios y le ayudaremos a resolverla lo antes posible. Nos vemos en el siguiente capítulo donde aprenderemos a trabajar con ficheros en python.

<- Anterior Volver al índice Siguiente ->

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *