On Sat, 13 Dec 2008 02:59:34 +0100, Andreas Kostyrka wrote: > On Fri, Dec 12, 2008 at 06:06:35PM -0500, Shrutarshi Basu wrote: >> I have a list containing strings like : >> >> func1[] >> func2[1,2] >> func3[blah] >> >> I want to turn them into method calls (with numeric or string >> arguments) on a supplied object. I'm trying to figure out the best way >> to do this. Since these lists could be very big, and the methods could >> be rather complex (mainly graphics manipulation) I would like to start >> by getting a list of the object's methods and make sure that all the >> strings are valid. Is there a way to ask an object for a list of it's >> methods (with argument requirements if possible)? > > Well, there are ways, but they are not reliable by design. Objects can > return dynamically methods. > > So use something like this: > > if callable(getattr(obj, "func1")): > # func1 exists. > > Guess nowaday with Python3 released, you should not use callable, but > instead test on __call__ > > if hasattr(getattr(obj, "func1"), "__call__"):
or the more pythonic version would just call func() and catch exception if it's not callable: try: func1() except TypeError: print "func1 is not callable" _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor