Newbie python

di il
1 risposte

Newbie python

Salve a tutti sono da poco passato al python e mi stò davvero incartando! .
il codice qua sotto dovrebbe semplicemente darmi la somma di due punti(con coordinata x e y) ,ma da il seguente errore: <__main__.Punto instance at 0xb7221a0c>. Non capisco perchè dato che l'ho copiato dal manuale! Suggerimenti?
class Punto:
	def __init__(self,x=0,y=0):
		self.x=x
		self.y=y
	
	def Stampa(self):
		print "(" + str(self.x) + "," + str(self.y)+ ")"
	
	def __add__(self, other):
		return Punto(self.x + other.x, self.y + other.y)
		
		
P1=Punto(3,5)
P2=Punto(2,4)
P3=P1+P2

print P3

1 Risposte

  • Re: Newbie python

    Ciao! Quello che vedi non è un errore, ma il risultato dell'istruzione "print P3". La classe Punto, infatti, è una classe creata da te, per cui Python non sa quali siano le informazioni da stampare. Di conseguenza ti stampa il nome della classe e l'indirizzo di memoria in cui l'oggetto risiede.
    Per stampare un messaggio più significativo puoi implementare il metodo "__str__":
    
    class Punto:
       ...
       def __str__(self):
          return "Punto: ({0};{1})".format(self.x, self.y)
    
Devi accedere o registrarti per scrivere nel forum
1 risposte