Sullivan WxPyQtKinter wrote: > I am sorry but you misunderstood my idea. > What I want is a generalized method to print out the function name, or > refer to the name of a function. If I use f.__name__, I think I should > just use print "f" to save my keyboard. What I expect is using a > method, or attribute, or another function to get the name of a > function.
Not exactly: py> def f(): ... print 'this is function f' ... py> g = f py> py> print g.__name__ f You might be confusing the idea of a name with the idea of a reference. It really doesn't matter what you name a function. As long as you have a reference to a function, or 'callable', you can call it. py> g() this is function f You can even create a reference to a function and call that reference in the function after the function is defined: py> def f(start, end): ... if start >= end: ... print 'start is end', start ... else: ... g(start+1, end) ... print 'leaving function where start is', start ... py> g = f py> f(1,5) start is end 5 leaving function where start is 5 leaving function where start is 4 leaving function where start is 3 leaving function where start is 2 leaving function where start is 1 But beware re-binding a name in such circumstances: py> def g(*args): ... print 'g rebound! args are', args ... py> f(1,5) g rebound! args are (2, 5) leaving function where start is 1 I hope this clears things up. James -- James Stroud UCLA-DOE Institute for Genomics and Proteomics Box 951570 Los Angeles, CA 90095 http://www.jamesstroud.com/ -- http://mail.python.org/mailman/listinfo/python-list