[ python-Bugs-1164631 ] super(...).__new__( ... ) behaves
"unexpected"
SourceForge.net
noreply at sourceforge.net
Wed Mar 16 18:07:51 CET 2005
Bugs item #1164631, was opened at 2005-03-16 17:07
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1164631&group_id=5470
Category: Type/class unification
Group: Python 2.4
Status: Open
Resolution: None
Priority: 5
Submitted By: Dirk Brenckmann (brenck)
Assigned to: Nobody/Anonymous (nobody)
Summary: super(...).__new__( ... ) behaves "unexpected"
Initial Comment:
Hello there,
python code and trace output enclosed.
What I did:
1. Metaclass inheritence:
type <-- MA <-- MB <-- MC
2. Created Class A using __metaclass__= MC
3. Create Class B(A) using __metaclass__= MB
...although this might seem strange, it should work...
When taking a look at the trace, you will notice one line
that goes like:
'-------> why does super( MA, metacls ).__new__ call MC.
__new__ in next line ????????????????????'
if you run the code, you will find it three times. That's ok.
In my trace I just replaced two occurences of that line by
">>" to enable focussing on the Problem...
What I would expect the code to do is the following:
1. Create a Class A which is of type MC
2. Create a Class B(A) which is of type MB
What the interpreter does is different:
1. Create a Class A which is type MC
2.1 Nearly create a Class B which is of type MB.
2.2 In type.__new__( ... ) change it's mind.
2.3 Due to the superclass A<MC> of B, create some
class A which is of type MC as well. Although B
contains a __metaclass__ = MB statement.
Well - that's what I experienced is "the way windows
works", so I ran the code on Solaris again but the
behaviour remains reproduceable...
I would consider it a bug therefor. If it's not a bug, I would
expect an Exception which tells me where I did wrong...
Thanx for your time and efforts
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1164631&group_id=5470
More information about the Python-bugs-list
mailing list