wroscoe
wroscoe

Reputation: 2014

extract the number and name of python method arguments

How can I return the arguments of a function in a different module

#Module: functionss.py
def simple(a, b, c):
    print "does something"


#Module: extract.py
#load the called module and function
def get_args(module_name, function_name):
    modFile, modPath, modDesc = imp.find_module(module_name)
    mod = imp.load_module(module_name,modFile,modPath,modDesc)
    attr = getattr(mod, function_name)

#this is the part I don't get - how do I read the arguments
    return = attr.get_the_args()

 if __name__ == "__main__":
     print get_args("functions.py", "simple")

 #this would ideally print [a, b, c]

Upvotes: 2

Views: 492

Answers (1)

Alex Martelli
Alex Martelli

Reputation: 881695

Use inspect.getargspec for the "heavy lifting" (introspecting a function).

Use __import__ to import a module (given its module name -- "functions.py" is a terrible way to specify a module name;-).

Use getattr(moduleobject, functionname) to get the function object given module object and function name.

Upvotes: 1

Related Questions