Ir al contenido principal

Python: clases, herencia y cosas útiles

Continuando con la serie de ejercicios de programación usando Python en esta ocasión veremos un ejemplo de Herencia.

 Ej. 1. Crear clase con sus respectivos atributos y métodos.

Economica (presente, tasa, periodo);

Donde: presente, tasa y periodo son las variables necesarias para calcular el valor futuro de una cantidad a inversión.

futuro = presente*pow(1+tasa/100, periodo)

economica.py


class Economica(object):
       pass

Definimos una clase (Economica) que "hereda" implícitamente de object. Definir atributos es muy fácil:

class Economica(object):

  def __init__(self,presente,tasa,periodo):
    self.presente=presente
    self.tasa=tasa
    self.periodo=periodo
    print "Objeto Economica creado e inicializado"

Python es perfecto para usuarios que detestan escribir líneas interminables de código.

Ahora definiremos su método "toString()"  def __repr__(self), el cual actúa convirtiendo un object a su representación en cadena (str)

class Economica(object):

  def __init__(self,presente,tasa,periodo):
    self.presente=presente
    self.tasa=tasa
    self.periodo=periodo
    print "Objeto Economica creado e inicializado"

  def __repr__(self):
    return str(self.__dict__)

Importamos la librería math para emplear los métodos math.floor()  y math.pow() ,además de crear un método para calcular el valor futuro de una cantidad a invertir.


import math

class Economica(object):

  def __init__(self,presente,tasa,periodo):
    self.presente=presente
    self.tasa=tasa
    self.periodo=periodo
    print "Objeto Economica creado e inicializado"

  def __repr__(self):
    return str(self.__dict__)

  def calculo(self):
    return math.floor(self.presente*math.pow(1+self.tasa/100,self.periodo))

Probamos el código. Definimos un método main y creamos una instancia de la clase Economica.

import math

class Economica(object):

  def __init__(self,presente,tasa,periodo):
    self.presente=presente
    self.tasa=tasa
    self.periodo=periodo
    print "Objeto Economica creado e inicializado"

  def __repr__(self):
    return str(self.__dict__)

  def calculo(self):
    return math.floor(self.presente*math.pow(1+self.tasa/100,self.periodo))

#método main
def main():
  economica = Economica(350.0,0.045,12)
  print economica
  print "Valor futuro=",economica.calculo()

if __name__ == '__main__':
  main()


Ej. 2. Un ejemplo de Herencia.
  • Vehiculo (clase padre)
  • Moto (clase hija) 
Vehiculo tendrá dos atributos: ruedas y puerta.


#clase padre
class Vehiculo(object):
  def __init__(self,ruedas,puertas):
    self.puertas=puertas
    self.ruedas=ruedas
    print "objeto Vehiculo creado e inicializado"

  def __repr__(self):
    return str(self.__dict__)

La clase hija (Moto) tendrá dos atributos heredados (ruedas y puertas), y un atributo propio (marca)

class Moto(Vehiculo):
  def __init__(self,ruedas,puertas,marca):
    Vehiculo.__init__(self,ruedas,puertas)
    self.marca=marca

Creamos las instancias.

def main():
  vehiculo = Vehiculo(4,4)
  moto = Moto(2,0,"Harly-Davison")
  print "Vehiculo:",vehiculo
  print "Moto:",moto

if __name__ == '__main__':
  main()

Usando help()
La función help() nos permite obtener ayuda e información sobre algún módulo que necesitemos importar. Por ejemplo, el módulo math usado en el anterior ejemplo.

python

>> import math
>> help(math)


Help on built-in module math:

NAME
    math

FILE
    (built-in)

DESCRIPTION
    This module is always available.  It provides access to the
    mathematical functions defined by the C standard.

FUNCTIONS
    acos(...)
        acos(x)
        
        Return the arc cosine (measured in radians) of x.
    
    acosh(...)
        acosh(x)
        
        Return the inverse hyperbolic cosine of x.

¡Feliz código!
Links
https://alquimistadecodigo.blogspot.com/2014/05/creando-una-clase-en-python.html

Comentarios

  1. Buenas tardes, ¿me recomienda python para aplicaciones informaticas o al ser un lenguaje de script es mejor tirar por un lenguaje orientado a objetos?

    ResponderEliminar
    Respuestas
    1. Python es un lenguaje de programación orientado a objetos. Para cualquier propósito.

      Eliminar

Publicar un comentario

Entradas populares de este blog

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...

z/OS, ¿Qué es? y ¿Cuáles son sus herramientas?

  En este post veremos las herramientas de z/OS de IBM. z/OS es un sistema operativo de mainframe desarrollado por IBM.  Es parte de la serie IBM z Systems (anteriormente conocida como System z), que se utiliza en los sistemas mainframe de IBM. z/OS es uno de los sistemas operativos más utilizados en el mundo empresarial para ejecutar aplicaciones críticas y procesar grandes volúmenes de datos. Características clave de z/OS: Escalabilidad : z/OS es conocido por su capacidad para manejar grandes cargas de trabajo y escalabilidad vertical, lo que permite agregar recursos de hardware para satisfacer las demandas de procesamiento. Confiabilidad y disponibilidad : z/OS está diseñado para ofrecer alta disponibilidad y confiabilidad. Incorpora características como redundancia y recuperación ante fallas para garantizar la continuidad de las operaciones. Seguridad : Proporciona una amplia gama de funciones de seguridad, como autenticación, autorización y auditoría, para proteger los...