On Mon, 01 Sep 2008 11:45:36 +0200, Luca asked about recognizing methods: > What is the best way to do this? The "most pythonic"?
That depends on why you are doing it, and what you want to do with the information once you've found it. If you are experimenting in the interactive interpreter, the easiest way is simply call the method and see what happens: obj.methodName() # call the method If it succeeds, then it is some sort of callable, a method or a function or something more unusual. If you fear side-effects, then use: callable(obj.methodName) Alternatively, you can read the docs: help(obj) help(obj.methodName) If your aim is to write something like a debugger, profiler, or some other application that needs to inspect arbitrary objects and work out what they do, then you probably should be using: isinstance(obj.methodName, new.instancemethod) But remember that not all callable attributes are instancemethods! There is no one right way of doing this. Hope this helps. -- Steven -- http://mail.python.org/mailman/listinfo/python-list