Observe the following Python 2.x code: class Angle(int): """Basic Angle object: Angle(number)""" def __init__(self, angle): angle %= 360 super(Angle, self).__init__(angle) Fairly simple stuff, Angle is basically just an int that never goes above 360 or below 0. This __init__ just makes sure that the input angle matches the conditions listed prior. But for some reason the above code gives me the following output: >>> a = Angle(322) >>> a 322 >>> b = Angle(488) >>> b 488 Why on earth would this be happening? The code seemed so trivial to me, but maybe I'm just missing something really obvious. Continue reading...