On May 5, 2:08 am, Steven D'Aprano <ste...@remove.this.cybersource.com.au> wrote: > On Mon, 04 May 2009 17:54:50 -0400, Terry Reedy wrote: > > bearophileh...@lycos.com wrote: > > >> Another possible syntax: > > >> def fact(n): > >> return 1 if n <= 1 else n * return(n - 1) > > >> But I guess most people don't see this problem as important&common > >> enough to justify changing the language. > > > Actually, I would like a way to refer to the current function from > > inside a function. but I would like support in the language, so that > > the compiler patched the code after the function object is created to > > directly refer to the function object (or can the code object call the > > code object?) without any name lookup at all. > > I don't know about avoiding name lookup, that smacks of deepest black > magic, and Python doesn't usually do that. It does however do parlour > tricks like `__name__` and `self`, suggests a solution. > > I propose a small piece of sugar. When a function is entered, Python > creates an ordinary local name in the function's local namespace, and > binds the function itself to that name. Two possibilities for the name > are `this` or `__this__`, analogous to `self` in methods and `__name__` > in modules. > > If there is any support for this, I propose to send the following (long) > post to python-ideas. Feedback, corrections and suggestions welcome.
[snip proposal] I'm not all that in favor of this, but I think I've got another use case for you at http://code.activestate.com/recipes/576731/. The functions written to use it would be a lot more standard looking at least. Geremy Condra -- http://mail.python.org/mailman/listinfo/python-list