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

A

Arnaud Delobelle

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,022
Latest member
MaybelleMa

Latest Threads

Top