Encapsulacion en Python
Escrito el Junio 10, 2008 a las 10:49 AM por Camilo Nova
Seguimos estudiando el lenguaje y ahora introducimos la encapsulacion con el mismo ejemplo de las clases:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #!/usr/bin/env python # Encapsulacion en python class Automotor(object) : """Clase de la cual heredan las demas y que es del nuevo estilo en python""" def __init__(self, ensambladora, nombre) : self.setEnsambladora(ensambladora) self.setNombre(nombre) print "Automotor", nombre, "Creado!!!" def setEnsambladora(self, ensambladora) : """Determina la ensambladora""" self.__ensambladora = ensambladora def getEnsambladora(self) : """Retorna la ensambladora""" return self.__ensambladora def setNombre(self, nombre) : """Determina el nombre del automotor""" self.__nombre = nombre def getNombre(self) : """Retorna el nombre del automotor""" return self.__nombre #Determinamos que el unico acceso a las variables es por los metodos ensambladora = property(getEnsambladora, setEnsambladora) nombre = property(getNombre, setNombre) class Carro(Automotor) : """Esta clase hereda de Automotor y sus metodos""" pass class Motocicleta(Automotor) : """Esta clase hereda de Automotor y sus metodos, pero es diferente a Carro""" pass if __name__ == '__main__': carro = Carro("Toyota", "Celica") moto = Motocicleta("Auteco", "Pulsar") print "\n\n" print "El carro es", carro.getNombre() print "La moto es", moto.getNombre() |

Julio 30th, 2009 at 8:51 PM
Hola, la verdad es que noveo la necesidad de hacer metodos accesores getter y setter pues si te fijas en python la oop como que dificulta este paso, para que vas a crear metodos accesores get y set si estan practicamente semipublico, en verdad en este punto citare a java, por ejemplo en java tu declaras un dato privado pero luego puedes modificarlo y leerlo cuando te de la gana y desde cualquier package, siempre y cuando los metodos sean publico en verdad no veo la ventaja de los metodos accesores, igual aqui en este ejemplo no los necesitas pues estas accediendo a datos practicamentes publicos, ahora si fuesen datos privados fuera otra cosa, bueno esto es todo hermano, por cierto tu blog está bien cuidadito, te felicito.
Julio 30th, 2009 at 8:53 PM
Muchas gracias, esperamos pronto seguir publicando mas cosas, hemos estado un poco alejados del tema.
Respecto a la comparacion con java es totalmente respetable, voy a escribir sobre otro ejemplo para tratar mejor el tema y poder hacer mas comparaciones.