[Python-Dev] dis module and new-style classes

Georg Brandl g.brandl at gmx.net
Thu Apr 6 21:21:09 CEST 2006


Guido van Rossum wrote:
> I think it's fine as it is. I don't think making it walk the
> inheritance tree is helpful; the output would be too large. Also, an
> instance doesn't have any code and that's fine too.

Inheritance has nothing to do with that.
> (Didn't you mean "dis.dis(D) doesn't touch C"?)

No.
> On 4/6/06, Georg Brandl <g.brandl at gmx.net> wrote:
>> Hi,
>>>> dis.dis currently handles new-style classes stepmotherly: given
>>>> class C(object):
>> def Cm(): pass
>> class D(object):
>> def Dm(): pass
>>>> dis.dis(C) doesn't touch D, and
>> dis.dis(C()) doesn't touch anything.
>>>> Should it be fixed? It may need some reworking in dis.dis.

Here is an example transcript to make clearer what I mean:
Python 2.4.2 (#1, Mar 12 2006, 00:14:41)
>>> import dis
>>> class C:
... def Cm(): pass
... class D:
... def Dm(): pass
...
>>> dis.dis(C)
Disassembly of Cm:
 2 0 LOAD_CONST 0 (None)
 3 RETURN_VALUE
Disassembly of D:
Disassembly of Dm:
 4 0 LOAD_CONST 0 (None)
 3 RETURN_VALUE
>>> dis.dis(C())
Disassembly of Cm:
 2 0 LOAD_CONST 0 (None)
 3 RETURN_VALUE
Disassembly of D:
Disassembly of Dm:
 4 0 LOAD_CONST 0 (None)
 3 RETURN_VALUE
>>> class Co(object):
... def Cm(): pass
... class Do(object):
... def Dm(): pass
...
>>> dis.dis(Co)
Disassembly of Cm:
 2 0 LOAD_CONST 0 (None)
 3 RETURN_VALUE
>>> dis.dis(Co())
>>>


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /