[Python-Dev] Odd new-style class __new__ behavior

Michael Hudson mwh@python.net
30 Mar 2002 15:08:04 +0000


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?

Cheers,
M.

-- 
  But since I'm not trying to impress  anybody in The Software Big
  Top, I'd rather walk the wire using a big pole, a safety harness,
  a net, and with the wire not more than 3 feet off the ground.
                                   -- Grant Griffin, comp.lang.python