Имена аргументов функции списка Python [дубликаты]

На этот вопрос уже есть ответ здесь:

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

def foo(bar, buz):
    pass

magical_way(foo) == ["bar", "buz"]
34
задан Bemmu 31 May 2019 в 05:45
поделиться

2 ответа

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

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

import inspect

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

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

54
ответ дан 27 November 2019 в 16:40
поделиться
>>> 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']
12
ответ дан 27 November 2019 в 16:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: