"A.T.Hofkamp" <[EMAIL PROTECTED]> writes: > while you think you are doing "Person('me', 'here', 31)", you are in > reality executing "Person.__init__(self, 'me', 'here', 31)", where > 'self' is refers to a shiny new, empty object created for you.
This is misleading, and founders on many discrepancies, not least of which is that '__init__' always returns None, yet the 'Person()' call returns the new instance. So it's quite untrue to say that one is "in reality" calling the '__init__' method. What one is "in reality" calling is the '__new__' method of the Person class. That function, in turn, is creating a new Person instance, and calling the '__init__' method of the newly-created instance. Finally, the '__new__' method returns that instance back to the caller. -- \ "Probably the toughest time in anyone's life is when you have | `\ to murder a loved one because they're the devil." -- Emo | _o__) Philips | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list