On Sat, May 9, 2015 at 1:48 AM, Ian Kelly <ian.g.ke...@gmail.com> wrote: > On May 8, 2015 9:26 AM, "Steven D'Aprano" > <steve+comp.lang.pyt...@pearwood.info> wrote: >> >> Do you think that Python will re-compile the body of the function every >> time >> you call it? Setting the default is part of the process of compiling the >> function. > > To be a bit pedantic, that's not accurate. The default is evaluated when the > function object is created, i.e. when the def statement is executed at > runtime, not when the underlying code object is compiled.
Aside from constructing two closures in the same context and proving that their __code__ attributes point to the same object, is there any way to distinguish between "code object compilation time" and "def execution time"? I just played around with it, and as far as I can tell, code objects are completely read-only. ChrisA -- https://mail.python.org/mailman/listinfo/python-list