
On 8/7/2011 12:32 AM, Eric Snow wrote:
On Sat, Aug 6, 2011 at 2:28 PM, Terry Reedy<tjreedy@udel.edu> wrote:
This proposal/desire comes up constantly on python-list, generally with support. I believe it was part of two recent threads. I would like to know if the rejection of the idea so far is a rejection in principle (and if so, why) or a rejection of specifics.
+1
Of the three code blocks, functions are the only ones for whom the resulting object and the execution of the code block are separate. So a code object could be executing for the original function or a different one that is sharing the code object.
Now I remember that the separation between code object and function object and the possibility of reusing code objects has been given as a reason to reject the idea. On the other hand, reusing code objects is so rare that I question the need to cater to it much.
Why not bind the called function-object to the frame locals, rather than the one for which the code object was created, perhaps as "__function__"?
I do not understand this.
To finish things off, bind to every new code object the function for which it was created, perhaps as "co_func". That way you will always know what function object was called and which one the code object came from originally.
I don't see that solving the problem of how the function code accesses the object. Adding something to the default arg tuple might make more sense. -- Terry Jan Reedy