Matthew Peter wrote:
> For example, how do I get this to work?
> 
> def func():
>     print "This is", __?__
>     return __caller__
> 
> def echo():
>     print "This is ", __?__
>     return func()
> 
> 
>>>> print echo()
> This is echo
> This is func
> echo

This may not be what you're looking for but here's the solution I ended up with 
after some help from the list. It's designed for getting the name of an 
instance method, but in case it applies to your particular situation: 

#!/usr/bin/python

import functools

class TestClass:
  def __init__(self):
    pass

  def __getattr__(self, name):
    try:
      return getattr(self.__class__, name)
    except AttributeError:
      return functools.partial(self.foo, name)

  def foo(self, name, **args):
    print "This is", name

test = TestClass()
test.someMethod()
test.anotherMethod()

Otherwise the inspect module may be the way to go, as Stephen already pointed 
out (though I must admit it seems a very inelegant route, especially compared 
to Python's usually clean and clear style). 

-Jay
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to