[pyar] Problema con herencia.
QliX=D! [aka EHB]
qlixed en gmail.com
Sab Sep 17 17:50:22 ART 2011
Estimados,
Tengo un inconveniente bastante particular y no logro dar con la
logica de por que me sucede.
Lo puedo solucionar implementando el esquema de otra forma, pero me
gustaria entender el problema y tratar de dejar la implementacion que
arme.
Tengo la siguientes clases cortas:
class Operation (object):
def __init__(self):
pass
def __repr__(self):
return self.__str__()
def do(self):
raise NotImplementedError()
class RelationalOperation(Operation):
__relations = []
def __init__(self, *args):
for arg in args:
print "Added:" + str(arg)
self.__relations.append(arg)
def __str__(self):
return self.__class__.__name__ + " Between:" + str(self.__relations)
@property
def relations(self):
return self.__relations
class AddedRelation(RelationalOperation):
def __init__(self, aRelation):
super(AddedRelation, self).__init__(aRelation)
def __repr__(self):
return "<"+self.__class__.__name__ + ": " + ",".join(self.relations)+">"
def __str__(self):
return self.__class__.__name__ + str(self.relations)
Ahora, al momento de utilizarlas tengo el siguiente inconveniente:
#....
relations_stack.append(AddedRelation("hola"))
#....
try:
while (True):
sentences_stack.append(AddedRelation(relations_stack.pop()))
except IndexError:
pass
print sentences_stack # [<AddedRelation: hola>]
#....
relations_stack.append(AddedRelation("chau"))
#....
try:
while (True):
sentences_stack.append(AddedRelation(relations_stack.pop()))
except IndexError:
pass
print sentences_stack # [<AddedRelation: hola, chau>, <AddedRelation:
hola, chau>]
O sea, se me "updatea" el valor anterior con el nuevo mas el valor
nuevo agregado en la "pila".
Que hice mal? en la definicion de clases?
Saludos.
-E-
More information about the pyar
mailing list