class Pippo :
    n = 0
    def __init__(self, i) -> None:
        self.i = i
        Pippo.n += 1
        #self.n = self.n + i

    def __repr__(self) :
        return f"AAA i = {self.i}; n = {Pippo.n}; self.n = {self.n}"
    
    def __str__(self) :
        return f"i = {self.i}; n = {Pippo.n}" #; self.n = {self.n}"
    
    def __add__(self, y):
        print ("Metodo add chiamato con i =", self.i)
        return Pippo(self.i+y.i)

#Pippo.n = 100
p = Pippo(10)
print ("Pippo.n = ",Pippo.n)

print (p)

p2 = Pippo (20)
print ("Pippo.n = ",Pippo.n)

print (p2)

p3 = p + p2 + p
print (p3)
pass
