Como conoser el nombre de una instancia de una clase
Chema Cortes
pych3m4 en gmail.com
Mar Mar 28 10:28:29 CEST 2006
On 3/24/06, Alvaro <aleivag en udd.cl> wrote:
> Lo que pasa es que estoy desarrollando un software de Investigacion
> de operaciones. y como esta empezando le estoy dando vueltas al
> asunto.entonces me gustaria poder escrivir el siguiente codigo
>
> >>>X = RealVar()
> >>>Y = Realvar()
> >>>
> >>> print 3*X+5*Y
> '3*X+5*Y'
>
> ya puedo hacer todo, multiplicar RealVar con casi cualquier cosa, la
> suma tampoco es problema. el problema conciste en que cuendo quiero
> imprimir el resultado como un str, no se que nombre le pudo el
> usuario a cada variable
Entiendo que lo que pretendes hacer es una especie de calculador
simbólico ó algebráico.
No se puede hacer tal como dices, pero se me ocurre que una forma de
hacerlo podría ser con los métodos __getattr___ o __getattribute__
class Simbol(object):
def __mul__(self,y):
...
def __sum__(self,y):
...
def __str__(self):
...
...
class R(oject):
def __init__(self):
self.simbols={}
def __getattr__(self,name):
d=self.simbols
if not d.has_key(name):
d[name]=Simbol()
return d[name]
r=R()
print 2*r.x+5*r.y
Esta es la idea. Te dejo que hagas el desarrollo completo te lo dejo a
tí, pero si no te sale podría intentar completarte el código.
Más información sobre la lista de distribución Python-es