Subsecciones

Orientación a objetos

 
class fruteria(object):
   """Ejemplo simple de clase"""
   def __init__(self, f):
       self.stock = list()
       self.stock.append(f)
   def compra(self, f):
       self.stock.append(f)
   def vende(self, f):
       if f in self.stock:
           self.stock.remove(f)
       else:
           print f, "no disponible"

def main():
   mi_fruteria = fruteria("pera")
   mi_fruteria.compra("manzana")
   print mi_fruteria.stock       # ["pera", "manzana"]
   mi_fruteria.vende("pera")
   mi_fruteria.vende("platano")  # platano no disponible
   print mi_fruteria.stock       # ["manzana"]
   mi_fruteria.vende("pera")     # pera no disponible
   print mi_fruteria.__doc__     # Ejemplo simple de clase
if __name__ == "__main__":
   main()

Herencia múltiple

Se permite herencia múltiple:
class fruteria(object):
    def que_vendo(self):
        print "Vendo frutas"
        
class carniceria(object):
    def que_vendo(self):
        print "Vendo carne"

# Herencia múltiple
class tienda(carniceria, fruteria):
    pass

# La clase carniceria está más a la 
# izquierda en la deficición de tienda
tienda().que_vendo() # Vendo carne

Métodos y atributos privados

Los métodos o atributos privados se definen con dos guiones bajos antes del nombre (y no pueden terminar en dos guiones bajos)
class Ejemplo(object):
    def publico(self):
        print "Uno"
        self.__privado()
        
    def __privado(self):
        print "Dos"

ej = Ejemplo()
ej.publico()   # Imprime Uno Dos
ej.__privado() # Da un error



Administración de Sistemas e Redes <ASR.USC[at]gmail.com>
Tomás Fernández Pena <tf.pena[at]usc.es>
Última actualización: 30-09-15 17:44 por tomas

Creative Commons License
Curso de Administración de Sistemas y Redes por Tomás Fernández Pena se distribuye bajo la licencia Creative Commons Recoñecemento-Compartir baixo a mesma licenza. 3.0 España.
Trabajo original en persoal.citius.usc.es/tf.pena/ASR.