[Python-Dev] dis module and new-style classes (original) (raw)

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