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
    def getValue(self, x, y):
        return self.m
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()