original) (raw)
(On Thu, Apr 4, 2013 at 8:01 AM, Chris Angelico <rosuav@gmail.com> wrote:
On Fri, Apr 5, 2013 at 1:59 AM, Guido van Rossum <guido@python.org> wrote:
> On Thu, Apr 4, 2013 at 7:47 AM, Chris Angelico <rosuav@gmail.com> wrote:
>> Is there any argument that I can pass to Foo() to get back a Bar()?Right, I'm aware it's possible. But who would expect it of a class?
\>> Would anyone expect there to be one? Sure, I could override \_\_new\_\_ to
\>> do stupid things, but in terms of logical expectations, I'd expect
\>> that Foo(x) will return a Foo object, not a Bar object. Why should int
\>> be any different? What have I missed here?
\>
\>
\> A class can define a \_\_new\_\_ method that returns a different object. E.g.
\> (python 3):
\>
If it's documented you could expect it.
--
--Guido van Rossum (python.org/\~guido)