for a in dir(obj) if not a.startswith('__') and callable(getattr(obj,a)):
response = obj.a()
you need to use getattr to actually get the callable and then call it ...
fn = getattr(obj,a) fn()
of coarse you are not checking if the callable has any required arguments or anything like that ... im not sure what you are actually trying to accomplish... but im skeptical that this is the right technique
additionally you need one more
) on this line