• Sábado 13 de Abril de 2024, 20:02

Autor Tema:  Problemas con retornar objetos  (Leído 1960 veces)

kbmiguel

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Problemas con retornar objetos
« en: Miércoles 5 de Junio de 2013, 20:27 »
0
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()

$francisco

  • Miembro activo
  • **
  • Mensajes: 49
  • Nacionalidad: es
    • Ver Perfil
Re:Problemas con retornar objetos
« Respuesta #1 en: Jueves 6 de Junio de 2013, 00:03 »
0
Buenas ejecuté tu script y no lo entiendo xd, solo aparece ceros, pero si quieres moverte entre las clases y que los valores sigan valiendo prueba a llamas a otra clase y pasarse como si misma para así heredar atributos, pos ejemplo:

Código: Python
  1. class saludo:
  2.     def __init__(self,nombre):
  3.         print('hola', nombre.n)
  4.  
  5. class nombre:
  6.     def __init__(self,n):
  7.         self.n = n
  8.         saludo(self)
  9.  
  10. nombre('francisco')

de esta manera puedes heredar atributos entre clases, espero que te sirva.
« última modificación: Jueves 6 de Junio de 2013, 00:17 por $francisco »