Probably a stupid question... name-->method lookup

Ignacio Vazquez-Abrams ignacio at openservices.net
Wed Aug 22 23:59:03 CEST 2001


On Wed, 22 Aug 2001, Joseph Andrew Knapka wrote:

> I have a method name (string) and a class object. I'd like to
> be able to look up the the named unbound method of the class.
> I know that TheClass.__dict__[<methodname>] will kinda
> work, but it will fail if <methodname> is implemented only in
> a base class of TheClass. I could do the Python method lookup
> dance via __bases__ etc., but I'd be surprised if there weren't
> already a standard function to do it. Sadly, perusal of the
> tutorial, library reference, language reference (briefly),
> and FAQ has thus far been unenlightening. Pointers
> appreciated.
>
> Thanks in advance,

Try this:

eval("%s.%s" % (filter(lambda (x,y): y==obj and x!='obj',
  locals().items()+globals().items())[0][0], func))

where obj is the class object and func is the method name string.

-- 
Ignacio Vazquez-Abrams  <ignacio at openservices.net>








More information about the Python-list mailing list