извлечь количество и имя аргументов метода python - PullRequest
2 голосов
/ 19 ноября 2009

Как я могу вернуть аргументы функции в другом модуле

#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]

1 Ответ

1 голос
/ 19 ноября 2009

Используйте inspect.getargspec для "тяжелой работы" (самоанализ функции).

Использование __import__ для импорта модуля (учитывая имя модуля - "functions.py" - ужасный способ указать модуль имя ; -).

Используйте getattr(moduleobject, functionname), чтобы получить объект функции с данным объектом модуля и именем функции.

...