On Fri, Jun 17, 2011 at 4:58 PM, Terry Reedy firstname.lastname@example.org wrote:
On 6/17/2011 9:26 AM, Nick Coghlan wrote:
This is why the nonlocal and global directives exist: to tell the compiler to change how it treats certain names. Arguments (including the associated default values) are given additional special treatment due to their placement in the function header. If we want to create a new namespace that is given special treatment by the compiler,
I do not really want a new namespace and for the purpose of the OP, named local constants (for speed or freezing the meaning of an expression or both), we do not need one. There is already a fourth 'namespace' for constants, a tuple f.__code__.co_consts, whose 'names' are indexes, just as with the locals array.
I really like this idea.
The only concerns I can see are losing the name for use in debugging or embedded functions, and I assume that those can be dealt with.