How does a function know the docstring of its code object?

Arnaud Delobelle arnodel at gmail.com
Thu Sep 15 13:10:58 CEST 2011


Hi all,

You can do:

def foo():
    "foodoc"
    pass

function = type(lambda:0)
foo2 = function(foo.__code__, globals())
assert foo2.__doc__ == "foodoc"

I am wondering how the function constructor knows that foo.__code__
has a docstring.  I can see that

    foo.__code__.co_consts == ('foodoc',)

But I can't find where in foo.__code__ is stored the information that
the first constant in foo.__code__ is actually a docstring.

-- 
Arnaud



More information about the Python-list mailing list