On Thu, 03 Feb 2005 15:48:05 +0000, C Gillespie wrote: > Dear All, > > I have a simple class > class hello: > def world(self): > return 'hello' > def test(self,arg): > return self.arg > > When I want to do is: >>hello.test('world') > 'hello' > > i.e. pass the method name as an argument. How should I do this?
In addition to Diez's point, I'd also point out you can do that from outside the class: Python 2.3.4 (#1, Jan 25 2005, 21:29:33) [GCC 3.4.3 (Gentoo Linux 3.4.3, ssp-3.4.3-0, pie-8.7.6.6)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> class Simple: ... def hello(self): ... print "hello" ... >>> s = Simple() >>> getattr(s, "hello")() hello >>> which may be more useful depending on what you are doing. I mention this because you are essentially re-implementing 'getattr' as a method of your object and it is likely you don't *really* want to do that, but I don't know, since we don't know what you are doing with this. -- http://mail.python.org/mailman/listinfo/python-list