Python R2


Intro de objetos en python

Posted in Python por Arturo Elias Antón en 25 agosto 2008
Tags: , , ,

Como dijimos al comienzo python es un lenguaje orientado a objetos. Esto significa que soporta herencia, polimorfismo y encapsulamiento. Para lograr esto python nos deja crear los objetos por medio de las clases. Las clases no son los objetos en si, sino son una descripción de cómo van a ser los objetos.
Al instanciar los objetos tendremos referencias a ellos y nunca tendremos a los objetos mismos. Esto pude parecer muy teórico, pero en el día a día se hace notar.
Para definir una clases python nos facilita la palabra reservada “class”. Dentro de una clase definiremos los métodos. Estos métodos serán definidos como definimos las funciones y los procedimientos por medio de “def”.
Adentro de cada una de las clases podremos reverenciarnos a la instancia de cada uno por medio de “self”, una especie de “yo mismo”, self es una referencia al mismo objeto (en otros lenguajes es this).
A cada metodo que cremos dentro de una clase tendremos que ponerle como primer parámetro a self.
Dentro de cada clase se podra crear un costructor creando un metodo “def __init__(self):”

#!/usr/bin/python
# Nombre de Fichero : vehiculo.py

class Vehiculo:
    "clase vehiculo"
    def __init__(self):
        self.ruedas = 0;
        self.pos = 0;
        self.combustible = 0;

    def andar(self,metros):
        if self.combustible >= metros:
            self.pos = self.pos + metros
            self.combustible = self.combustible - metros
            return metros
        else:
            return 0

    def cantRuedas(self):
        return self.ruedas

    def cargarCombustible(self,litros):
        self.combustible = self.combustible + litros

p = Vehiculo();

p.cargarCombustible(50)
print "Andar 60 anduvo ->" + str(p.andar(60))
print "Andar 20 anduvo ->" + str(p.andar(20))
print "Andar 30 anduvo ->" + str(p.andar(30))
print "Andar 30 anduvo ->" + str(p.andar(30))

Pueden y deben documentar cada clase. Gracias a dios esto es muy simple en python ya que solo debemos agregar un string debajo de la definición de class X:. En nuestro caso justo debajo de la “class vehiculo:” pusimos “Clase vehiculo” .
Despues de ejecutar el programita en el interprete de python nos tendra que dar esto:

>>>
Andar 60 anduvo ->0
Andar 20 anduvo ->20
Andar 30 anduvo ->30
Andar 30 anduvo ->0

Luego en ele interprete mismo prueben ejecutar esto para ver todos sus metodos:

>>> dir(p)
['__doc__', '__init__', '__module__', 'andar', 'cantRuedas',
'cargarCombustible', 'combustible', 'pos', 'ruedas']

Y para ver el comentario que hicimos nosotros para esta clase

>>> p.__doc__
'clase vehiculo'

Prueben con otros objetos del entorno y descubrirán cosas lindas 😉 wiiiii.

Por poner un ejemplo

>>> import math
>>> dir (math)
['__doc__', '__name__', 'acos', 'asin', 'atan', 'atan2',
'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs',
'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log',
'log10', 'modf', 'pi', 'pow', 'radians', 'sin',
'sinh', 'sqrt', 'tan', 'tanh']

En la próxima entrada veremos la herencia.

Anuncios

Una respuesta to 'Intro de objetos en python'

Subscribe to comments with RSS o TrackBack to 'Intro de objetos en python'.

  1. Papo said,

    Andubo está mal, se escribe Anduvo.


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


A %d blogueros les gusta esto: