hola comunidad estoy empezando a programar python y estoy haciendo un ejemplo sencillo donde tengo un museo y obras de arte, todas las obras tienen caracteristicas comunes pero se dividen en 2 grupos pinturas y esculturas las cuales tienen sus caracteristicas particulares ademas tengo que hacer un metodo que me calcule un valor tanto para las pinturas como para las esculturas, esto es lo que tengo hecho pero no me funciona y tengo varias preguntas al respecto
Código Python:
Ver originalfrom datetime import date
class Obra(object):
def __init__(self, anno, autor, fechaIngreso, valorBase,indiceCre):
self._anno = anno
self._autor = autor
self._fechaIngreso = fechaIngreso
self._valorBase = valorBase
self._indiceCre = indiceCre
def CantAnnos(self):
now = date.today()
birthday = date(self._anno, 1, 1)
age = now - birthday
return age.days
def _getAnno(self):
return self._anno
def _getAutor(self):
return self._autor
def _getFechaIngreso(self):
return self._fechaIngreso
def _getValorbase(self):
return self._valorBase
def _getIndice(self):
return self._indiceCre
anno = property(fget = _getAnno)
autor = property(fget = _getAutor)
fecha = property(fget = _getFechaIngreso)
valorBase = property(fget = _getIndice)
# Properties
aqui tengo la clase obra, esta correcto declarar las property asi o no y si alguien me pudiera aclarar el tema de los atributos y las property bien
Código Python:
Ver originalimport Obra
class Pintura(Obra.Obra):
def __init__(self, anno, autor, fechaIngreso, valorBase,indiceCre, dim,tecnica, material):
Obra.Obra.__init__(self,anno, autor, fechaIngreso, valorBase,indiceCre)
self._dim = dim
self._tecnica = tecnica
self._material = material
def ValorObra(self):
valor = 0.0
if 1300 < Obra.Obra.anno < 1599:
valor = 0.6
elif 1600 < Obra.Obra.anno < 1799 :
valor = 0.4
elif 1800 < Obra.Obra.anno :
valor = 0.2
return Obra.Obra._valorBase * valor * Obra.Obra.CantAnnos()
class Escultura(Obra.Obra):
def __init__(self, anno, autor, fechaIngreso, valorBase,indiceCre, material, peso, volumen):
super(Escultura, self).__init__(anno, autor, fechaIngreso, valorBase,indiceCre)
self._material = material
self._peso = peso
self._volumen = volumen
def ValorObra(self):
valor = 0.0
if 1300 < Obra.Obra._anno < 1599:
valor = 0.7
elif 1600 < Obra.Obra._anno < 1799 :
valor = 0.5
elif 1800 < Obra.Obra._anno :
valor = 0.3
return Obra.Obra._valorBase * valor * Obra.Obra.CantAnnos(self)
esta es la clase pintura y escultura que son hijas de Obra, decir que yo tengo un fichero para cada clase, es decir tengo un Obra.py, Pintura.py y un Escultura.py , esto cuando lo ejecuto me da un error es decir no se como en una clase hija hacer referencia a los elementos de una clase padre. otro elemento que gustaria que me aclaran es sobre el tiempo de vida de las variables ,por ejeplo en java el tiempo de vida de la variable es en bloque de instrucciones que se alla declarado, por ejemplo dentro de un if.
agradecere la ayuda de verdad que soy nuevo y he pasado un poco de trabajo, ahh estoy trabajndo con python 3.0 por si existe alguna variante con respecto a versiones anteriores.
saludos manuelle