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

Guido van Rossum guido at python.org
Thu Apr 6 22:36:37 CEST 2006


Sorry, I missed the fact that this was about nested classes.

Still, I don't think it's worth fixing.

--Guido

On 4/6/06, Georg Brandl <g.brandl at gmx.net> wrote:

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 LOADCONST 0 (None) 3 RETURNVALUE Disassembly of D: Disassembly of Dm: 4 0 LOADCONST 0 (None) 3 RETURNVALUE

>>> dis.dis(C()) Disassembly of Cm: 2 0 LOADCONST 0 (None) 3 RETURNVALUE Disassembly of D: Disassembly of Dm: 4 0 LOADCONST 0 (None) 3 RETURNVALUE >>> class Co(object): ... def Cm(): pass ... class Do(object): ... def Dm(): pass ... >>> dis.dis(Co) Disassembly of Cm: 2 0 LOADCONST 0 (None) 3 RETURNVALUE >>> dis.dis(Co()) >>>


Python-Dev mailing list Python-Dev at python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/guido%40python.org

-- --Guido van Rossum (home page: http://www.python.org/~guido/)



More information about the Python-Dev mailing list