Chris Angelico wrote:
How do you know that the function's code
object was created when compile() happened, rather than being created
when the function was defined?

Python 3.4.2 (default, Feb  4 2015, 20:08:25)
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> source = "def f(x = 42): pass"
>>> code = compile(source, "", "exec")
>>> c1 = code.co_consts[1]
>>> c1
<code object f at 0x53d430, file "", line 1>
>>> e = {}
>>> exec(code, e)
>>> c2 = e['f'].__code__
>>> c2
<code object f at 0x53d430, file "", line 1>
>>> c1 is c2
True

Is that proof enough for you?

--
Greg
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to