problema con variable e instancia

Iniciado por Joe Fraddy, 24 Febrero 2015, 20:51 PM

0 Miembros y 1 Visitante están viendo este tema.

Joe Fraddy

Este es mi código (python):

Código (python) [Seleccionar]
class Punto3D(object):
    def __init__(self, x, y, z):
        self.x=x
        self.y=y
        self.z=z
       
    def __repr__():
        return "%d, %d, %d" % self.x, self.y, self.z
       
miPunto=Punto3D(1,2,3)
print miPunto


La indicación es que fuera de la definición de clase, creá una variable que se llame miPunto que contenga una nueva instancia de Punto3D con x=1, y=2 y z=3.


Eleкtro

#1
La sintaxis de este método era incorrecta tanto por el formato del string como por que el método no tomaba ningún parámetro, prueba así:

Código (python) [Seleccionar]
  def __repr__(self):
      return "%d, %d, %d" % (self.x, self.y, self.z)


PD: Ya te dije anteriormente que si tienes alguna duda sobre algún error, DESCRIBE EL ERROR, que no somos adivinos.

Saludos








Joe Fraddy

#2
Si, esta bien.

Mira ya modifiqué mi script, pero el error que arroja es el mismo:

Código (python) [Seleccionar]
class Punto3D(object):
   def __init__(self, x, y, z):
       self.x=x
       self.y=y
       self.z=z
       
   def __repr__(self):
       return "%d, %d, %d" % (self.x, self.y, self.z)

miPunto=Punto3D(1,2,3)
print miPunto


El resultado es en la consola:

1, 2, 3
None


Pero todavía me dice:
El software de verificación: No mostraste el punto 3D con el formato correcto

Y una cosa mas que acabo de ver en la ayuda es:

Cuando definas un nuevo __repr__(), retorná un valor de cadena que use las variables miembro de la clase para ver adecuadamente el punto 3D. Podés usar la función str() para ubicar estos números en la cadena apropiada.

Pero no se como se hace eso :-S

Joe Fraddy

Disculpen por las molestias, el error era solo de formato:

retorne el valor así:

Código (python) [Seleccionar]
return "(%d, %d, %d)" % (self.x, self.y, self.z)

Y listo corrió como bueno en el software xD