Guido van Rossum <guido@python.org> writes: > > On 30 Mar 2002, Michael Hudson wrote: > > > Kevin Jacobs <jacobs@penguin.theopalgroup.com> writes: > > > > Suppose I define: > > > > > > > > class Foo(object): > > > > def __new__(cls): > > > > return 1 > > > > > > > > class Bar(object): > > > > def __new__(cls): > > > > return [1,2,3] > > > > > > > > Python 2.2 returns: > > > > print Foo() > > > > > 1 > > > > print Bar() > > > > > [] > > > > > > > > I would expect that Bar() should return [1,2,3]. Am I running into > > > > some clever undocumented feature or a bug? > > > > > > Is tp_init being called on the returned list? > > Correct. Goody. I always like it when my wild guesses turn out to be accurate :) [...] > Correct behavior is not to return a different type unless you know > what its __init__ does. >>> d = {1:1} >>> d.__init__() >>> d {1: 1} >>> l = [1] >>> l.__init__() >>> l [] This is at least a little odd, I'd have said. Is this just a fluke of implementation? It's not like I really care, though. Cheers, M. -- In the 1950s and 60s there was a regular brain drain of young Australians from the cities to London, but it was because of money, culture and opportunity, not spiders. -- Al Grant, ucam.chat, from Owen Dunn's review of the year
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4