how to access class methods via their name-as-string

phil_nospam_schmidt at phil_nospam_schmidt at
Mon Jan 31 12:45:14 EST 2005

I'd like to be able to look up a method name by passing a string with
the method name. I thought I could use self.__dict__ to get at the
method names, but as my example shows, this is obviously not working.
I've also tried self.__class__.__dict__ without success.

Can anyone point me in the right direction to make this work?


>>> class a:
def m1(self):
print 'm1'
def __getitem__(self, k):
return self.__dict__[k]

>>> class b(a):
def m2(self):
print 'm2'

>>> z=b()
>>> dir(z)
['__doc__', '__getitem__', '__module__', 'm1', 'm2']
>>> z['m1']
Traceback (most recent call last):
File "<pyshell#56>", line 1, in ?
File "<pyshell#51>", line 5, in __getitem__
return self.__dict__[k]
KeyError: 'm1'

More information about the Python-list mailing list