Estructura para los productos de una tienda

Ejemplo sin herencia


In [1]:
class Producto:
    def __init__(self,referencia,tipo,nombre,pvp,descripcion,productor=None,distribuidor=None,isbn=None,autor=None):
        self.referencia = referencia
        self.tipo = tipo
        self.nombre = nombre
        self.pvp = pvp
        self.descripcion = descripcion
        self.productor = productor
        self.distribuidor = distribuidor
        self.isbn = isbn
        self.autor = autor
        
adorno = Producto('000A','ADORNO','Vaso Adornado',15,'Vaso de porcelana con dibujos')

In [2]:
adorno


Out[2]:
<__main__.Producto at 0x5243810>

In [3]:
adorno.tipo


Out[3]:
'ADORNO'

Creando una jerarquía de productos con clases

Superclase Producto


In [4]:
class Producto:
    def __init__(self,referencia,nombre,pvp,descripcion):
        self.referencia = referencia
        self.nombre = nombre
        self.pvp = pvp
        self.descripcion = descripcion
        
    def __str__(self):
        return """\
REFERENCIA\t{}
NOMBRE\t\t{}
PVP\t\t{}
DESCRIPCIÓN\t{}""".format(self.referencia,self.nombre,self.pvp,self.descripcion)

Subclase Adorno


In [ ]:
class Adorno(Producto):
    pass

a = Adorno(2034,"Vaso adornado",15,"Vaso de porcelana adornado con árboles")
print(a)

Subclase Alimento


In [10]:
class Alimento(Producto):
    productor = ""
    distribuidor = ""
    
    def __str__(self):
        return """\
REFERENCIA\t{}
NOMBRE\t\t{}
PVP\t\t{}
DESCRIPCIÓN\t{}
PRODUCTOR\t{}
DISTRIBUIDOR\t{}""".format(self.referencia,self.nombre,self.pvp,self.descripcion,self.productor,self.distribuidor)
        
    
al = Alimento(2035,"Botella de Aceite de Oliva Extra",5,"250 ML")
al.productor = "La Aceitera"
al.distribuidor = "Distribuciones SA"

print(al)


REFERENCIA	2035
NOMBRE		Botella de Aceite de Oliva Extra
PVP		5
DESCRIPCIÓN	250 ML
PRODUCTOR	La Aceitera
DISTRIBUIDOR	Distribuciones SA

Subclase Libro


In [12]:
class Libro(Producto):
    isbn = ""
    autor = ""
    
    def __str__(self):
        return """\
REFERENCIA\t{}
NOMBRE\t\t{}
PVP\t\t{}
DESCRIPCIÓN\t{}
ISBN\t\t{}
AUTOR\t\t{}""".format(self.referencia,self.nombre,self.pvp,self.descripcion,self.isbn,self.autor)
    
li = Libro(2036,"Cocina Mediterránea",9,"Recetas sanas y buenas")
li.isbn = "0-123456-78-9"
li.autor = "Doña Juana"

print(li)


REFERENCIA	2036
NOMBRE		Cocina Mediterránea
PVP		9
DESCRIPCIÓN	Recetas sanas y buenas
ISBN		0-123456-78-9
AUTOR		Doña Juana