Implementamos tecnologia y es asi como lo hacemos

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()
Bookmark and Share

2 Responses to “Encapsulacion en Python”

  1. Eloy-caballo Says:
    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.

  2. Camilo Nova Says:
    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.

Deja un comentario

AxiaCore Blog

Publicidad

Etiquetas

Nosotros Leemos

Comentarios Recientes:

  • Jorge Chávez: Algo que me ha interesado en los últimos días es intentar agregar nuevos widgets en el filtro, que...
  • Jorge Chávez: Excelente post! Sin duda los filtros son un problema con la falta de documentación oficial, pero en lo...
  • CBTIS_102: pzz la vdd python es un programa muy completo y facil, pero a veces los que enseñan python son pesimos,...
  • katerine: CORIDAL SALUDO, ES HERMOSA ESTA LABOR. ME ENCANTARIA SABER LOS DATOS DE LA FUNDACION PARA ACERCARME A...
  • Camilo Nova: Copyright © 2008 AxiaCore S.A.S. – info@axiacore.com – http://axiacore.com

Enlaces Recientes:

Archivo

Admin