[pyar] Problema en el pasaje de atributos de una clase a metodos.
Lucas Liendo
mindmaster en gmail.com
Sab Nov 20 19:20:02 ART 2010
Buenas ! Resulta que programando un rato me estanque con el siguiente
problema : necesito pasar como argumentos a ciertos metodos los atributos de
la clase, esto lo hago porque no se me ocurrio otra manera de repetir
codigo, aca va un ejemplo :
class ClassTest(object) :
def __init__(self) :
self.test_var1 = 0
self.test_var2 = 1
self.test_var3 = 2
self.test_var4 = 3
self.test_dict = {'key1' : (self.test_method, (self.test_var1,
self.test_var2)),
'key2' : (self.test_method, (self.test_var3, self.test_var2))}
def run(self) :
self.test_dict ['key1'] [0] (*self.test_dict ['key1'] [1])
self.test_dict ['key2'] [0] (*self.test_dict ['key2'] [1])
def test_method(self, arg1, arg2) :
self.print_test_vars()
# En realidad aca quiero modificar self.test_var1 y self.test_var2
# a traves de arg1 y arg2
arg1 = 88
arg2 = 89
self.print_test_vars()
def print_test_vars(self) :
print "self.test_var1 %d" % self.test_var1
print "self.test_var2 %d" % self.test_var2
print "self.test_var3 %d" % self.test_var3
print "self.test_var4 %d\n" % self.test_var4
if __name__ == "__main__" :
test = ClassTest()
test.run()
Al correr esto podemos comprobar que efectivamente las "test_var" no son
modificadas (esto es por como lo implementa Python el pasaje de argumentos,
segun pude leer). La idea es no repetir la logica que estaria implementada
en test_method, ya que sino tendria metodos repetidos dependiendo los
atributos tenga que utilizar. Algun workaround pythonero o alguna manera de
hacer posible la modificacion de las self.test_vars a traves de los args ?.
Gracias !
--
Saludos,
Lucas.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20101120/8599137d/attachment.html>
More information about the pyar
mailing list