[issue24485] Function source inspection fails on closures

Terry J. Reedy report at bugs.python.org
Fri Jun 26 21:43:43 CEST 2015


Terry J. Reedy added the comment:

I verified (Win7, but should be irrelevant) that test.py works on 2.7.10 and 3.4.3.  The failure in 3.5.0b2 is omitting the body of inner.  Add another line to inner and both are omitted, so 'body' seems correct  Add another line to outer, and nothing is omitted.

def outer():
    def inner():
        inner1
        inner2
    outer2

is displayed completely.  So the omission is the body of an inner function that is the last statement of outer.  This rule is not recursive, in the sense that for

def outer():
    def middle():
        def inner():
            inner1

"def inner ..." is entirely omitted, not just 'inner1'.  The omission seems specific to 'def' as it does not occur with the other compound statements I tested (if, while).

----------
nosy: +terry.reedy

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue24485>
_______________________________________


More information about the Python-bugs-list mailing list