The compiler also calls the default arguement constructor automatically, if such a constructor is provided for the base class(es); but, this becomes a special case of what has been said by Andrew Koenig.
So, it is NOT just the no arguement constructor that is automatically called; note that the default arguement constructor is kinda put in place because sometimes, the user may call the constructor with no arguements, while the object actually needs some values for proper construction. -- http://mail.python.org/mailman/listinfo/python-list