Any way for a function to refer to itself?
Joshua Marshall
jmarshal at mathworks.com
Thu Feb 22 15:22:16 EST 2001
More information about the Python-list mailing list
Thu Feb 22 15:22:16 EST 2001
- Previous message (by thread): File browser
- Next message (by thread): Any way for a function to refer to itself?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Joshua Marshall <jmarshal at mathworks.com> wrote: > Lee, Rick <rickylee at americasm01.nt.com> wrote: >> I can't find any other way for a function or method to refer to itself >> than something like the following: >> def foo(): >> myself = foo # only if foo is global >> mydoc = myself.__doc__ >> myname = myself.__name__ >> So it can be done this way, but: >> - only if the function name can actually be accessed from the current >> name space >> - if the function name changes, that first line inside this function >> also has to change >> Seems to me there should be a more "Pythonic" way of doing this. Is >> there? > It might be unpleasant, but you can do something like: > def fib(f, x): > if x < 2: return 1 > return f(f, x-1) + f(f, x-2) > print fib(fib, 10) And I guess if you don't like the idea of always having to pass your function in to itself, you can wrap it: def fib(x): def _fib(f, x): if x < 2: return 1 return f(f, x-1) + f(f, x-2) return _fib(_fib, x) print fib(10)
- Previous message (by thread): File browser
- Next message (by thread): Any way for a function to refer to itself?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list