Как я могу считать подпись функции включая значения параметра по умолчанию?

Учитывая функциональный объект, как я могу получить его подпись? Например, для:

def myMethod(firt, second, third='something'):
    pass

Я хотел бы добраться "myMethod(firt, second, third='something')".

107
задан Ciro Santilli 新疆改造中心法轮功六四事件 3 July 2015 в 13:05
поделиться

2 ответа

import inspect

def foo(a, b, x='blah'):
    pass

print(inspect.getargspec(foo))
# ArgSpec(args=['a', 'b', 'x'], varargs=None, keywords=None, defaults=('blah',))

Однако обратите внимание, что inspect.getargspec () устарел, начиная с Python 3.0.

Python 3.0–3.4 рекомендует inspect.getfullargspec () .

Python 3.5+ рекомендует inspect.signature () .

157
ответ дан 24 November 2019 в 03:39
поделиться

Попробуйте позвонить в help для объекта, чтобы узнать об этом.

>>> foo = [1, 2, 3]
>>> help(foo.append)
Help on built-in function append:

append(...)
    L.append(object) -- append object to end
8
ответ дан 24 November 2019 в 03:39
поделиться
Другие вопросы по тегам:

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