[Python-ideas] Before and after the colon in funciton defs.
Carl Matthew Johnson
cmjohnson.mailinglist at gmail.com
Thu Sep 22 20:49:53 CEST 2011
On Sep 22, 2011, at 3:58 AM, Nick Coghlan wrote:
> (As an implementation detail, this would likely
> work by assigning such expressions an index in the function's closure
> list and populating them at definition time as cells)
This reminds me that there was a proposal a few weeks back to be able to refer to the function one is in absolutely. Right now, you can't just slap an attribute onto f in a loop and then get it back at exec time, since the variable f will refer to the last f defined in the loop. But suppose we had some sort of "THIS_FUNCTION" magic variable… Then this would work:
fs = []
for i in range(10):
def f():
return THIS_FUNC.value
f.value = i
[f() for f in fs]
(Again, it has to be some sort of magical variable, since "return f.value" will refer to the 9 producing function at the end.)
This could then be combined with a standard inject decorator.
@inject(i=i)
def f():
return THIS_FUNC.inject_values.i
In cases where you're not in a loop or something, you could just write "f.values.i" instead of using the new magical variable.
More information about the Python-ideas
mailing list