class adder:
def __init__(self, value=0):
self.data = value # initialize data
def __add__(self, other):
self.data += other # add other in-place
class addrepr(adder): # inherit __init__, __add__
def __repr__(self): # add string representation
return 'addrepr(%s)' % self.data # convert to string as code
x = addrepr(2) # runs __init__
x + 1 # runs __add__
print x # runs __repr__
addrepr(3)
print x # runs __repr__
addrepr(3)
print str(x), repr(x) # run ___repr__
|