self, __init__ & constructors in python

some confusing features of python