2018-03-05 21:44 GMT+03:00 Terry Reedy <tjre...@udel.edu>: > Yes, what we really want for this sort of thing are unrebindable local > constants. A simple syntax change could do it. > > def func_local_1(numb; int = int, float = float, range = range): > > The binding after ';' belong in the header because they should be done > once. > > They'd then >> be bound at either compile time or function definition time (by >> default the former, I think, but the latter would be more useful), and >> be looked up as quickly as locals. I'm not sure how useful this would >> be, though. >> > > I believe that the occasional practice of re-binding built-in names to > locals can be shown to speed up loops run enough times.
Yes "_unrebindable local constants_" it is what I was thinking about. But I do not agree that they must be passed through arguments, because they should be somewhat static for a function, and could not be changed by any means after function is compiled. Alternative option, more dynamic - to allow injecting local variables into the function via some interface. Currently, there is no such _feature_ in Python, at least I do not know. There was _somewhat_ related discussion about how to change the locals of a frame (https://bugs.python.org/ issue1654367) by making `frame.f_locals` writable, but it seems that it is dead. With kind regards, -gdg -- https://mail.python.org/mailman/listinfo/python-list