On Sun, Nov 16, 2008 at 2:57 PM, spir <[EMAIL PROTECTED]> wrote:
> * Why, then, is __init__ still executed when the instanciated object is
> 'manually' returned? What's the use of that feature?

The manual (http://www.python.org/doc/2.5.2/ref/customization.html) says:
"If __new__() returns an instance of cls, then the new instance's
__init__() method will be invoked like "__init__(self[, ...])", where
self is the new instance and the remaining arguments are the same as
were passed to __new__(). "

That seems to explain why you're seeing what you're seeing.  I don't
know how you would avoid that if that's not the behavior you want,
though.  I suppose you could then repeat your check of the type of
source in __init__, just like you did in __new__ to avoid
re-initializing.

-- 
Jerry
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to