[Python-bugs-list] [ python-Bugs-492345 ] New-style class with only classic bases
noreply@sourceforge.net
noreply@sourceforge.net
Thu, 13 Dec 2001 20:19:43 -0800
Bugs item #492345, was opened at 2001-12-12 20:26
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=492345&group_id=5470
Category: Type/class unification
Group: Python 2.2
Status: Closed
Resolution: Fixed
Priority: 7
Submitted By: Guido van Rossum (gvanrossum)
Assigned to: Guido van Rossum (gvanrossum)
Summary: New-style class with only classic bases
Initial Comment:
I just tried this:
>>> class A: pass
...
>>> class B: pass
...
>>> class C(A, B): __metaclass__ = type
...
Traceback (most recent call last):
File "<stdin>", line 1, in ?
SystemError: NULL result without error in PyObject_Call
>>>
----------------------------------------------------------------------
>Comment By: Guido van Rossum (gvanrossum)
Date: 2001-12-13 20:19
Message:
Logged In: YES
user_id=6380
Hm. I forgot to checkin. Fixed now: 2.124.2.1 (release
branch), 2.125 (trunk). Plus added a test to test_descr.py.
----------------------------------------------------------------------
Comment By: Guido van Rossum (gvanrossum)
Date: 2001-12-12 20:59
Message:
Logged In: YES
user_id=6380
Oops, that was easier than I feared. best_bases() returned
NULL without an error; there was an assert though in debug
mode that helped me find it quickly. I've decided for now to
declare this an error -- if you have a new-style metaclass,
you must have at least one new-style base class. (I first
tried to fix it, but after making the class statement pass,
the constructed class couldn't be instantiated and didn't
have 'object' in its __mro__, so I gave up quickly.
----------------------------------------------------------------------
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=492345&group_id=5470