Подтвердить что ты не робот

Имена аргументов функции списка Python

Есть ли способ получить имена аргументов, которые выполняет функция?

def foo(bar, buz):
    pass

magical_way(foo) == ["bar", "buz"]
4b9b3361

Ответ 1

Используйте модуль inspect из стандартной библиотеки Python (самый чистый и надежный способ проведения самоанализа).

В частности, inspect.getargspec (f) возвращает имена и значения по умолчанию для аргументов f - если вы хотите только имена и не заботитесь о специальных формах *a, **k,

import inspect

def magical_way(f):
    return inspect.getargspec(f)[0]

полностью соответствует вашим выраженным требованиям.

Ответ 2

>>> import inspect
>>> def foo(bar, buz):
...     pass
... 
>>> inspect.getargspec(foo)
ArgSpec(args=['bar', 'buz'], varargs=None, keywords=None, defaults=None)
>>> def magical_way(func):
...     return inspect.getargspec(func).args
... 
>>> magical_way(foo)
['bar', 'buz']