• Viernes 29 de Marzo de 2024, 00:43

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - kbmiguel

Páginas: [1]
1
Python / Problemas con retornar objetos
« en: Miércoles 5 de Junio de 2013, 20:27 »
Hola, en el siguiente codigo obtengo como resultado 3 matrices con los mismos valores, o sorpresa es de la ultima carga de valores. Si imprimiera cada uno cada vez que se va cargando son valores distintos. Cual es mi error, ya probe utilizando copy.copy y deepcopy. Como puedo mantener el valor de los objetos luego de haber pasado por ellos, saludos y gracias.


import random

class Matrix:
    m = []
    x = 0
    y = 0
    def __init__(self, x, y):
        self.x = x
        self.y = y

        for i in xrange(0, x):
            rows = []
            for j in xrange(0, y):
                rows.insert(j, 0)
            self.m.append(rows)
            rows = []

    def setXY(self, x, y, value):
        self.m
  • [y] = value


    def getValue(self, x, y):
        return self.m
  • [y]


class Prueba :

    #def __init__(self):
        #pm = self.loadMatrix()
        #self.printMatrix(pm)

    def loadMatrix(self):
        m= None
        m = Matrix(10, 10)
        for i in xrange(0, m.x):
            for j in xrange(0, m.y):
                m.setXY(i, j, random.randrange(0,9))
        return m

    def printMatrix(self, pm):
        x = []
        for i in xrange(0, pm.x):
            for j in xrange(0, pm.y):
                x.insert(j, pm.getValue(i, j) )
            print x
            x = []

class Prueba2:

    def __init__(self):
        p = Prueba()
        pm = p.loadMatrix()

        q = Prueba()
        qm = q.loadMatrix()

        t = Prueba()
        tm = t.loadMatrix()

        print "--------Q---------"
        q.printMatrix(qm)
        print "---------P--------"
        p.printMatrix(pm)
        print "---------T--------"
        t.printMatrix(tm)


p = Prueba2()

Páginas: [1]