Допустим, у меня есть следующая функция:
def get_fullname(first: str, last: str = "Miller"):
"""
:param first: First name
:param last: Last name
:return: Fullname
"""
return f"{first} {last}"
Я знаю, что могу получить кучу информации о функции с помощью модуля inspect:
import inspect
spec = inspect.getfullargspec(get_fullname)
print(spec)
# FullArgSpec(args=['first', 'last'], varargs=None, varkw=None, defaults=('Miller',), kwonlyargs=[], kwonlydefaults=None, annotations = {'first': <class 'str'>, 'last': <class 'str'>})
В любом случае я могу программно получить описания этих аргументов? Не похоже, что это возможно, но просто убедиться. Похоже, это способ PyCharm для указание типов.






Вы можете установить и использовать docstring_parser:
import docstring_parser
def get_fullname(first: str, last: str = "Miller"):
"""
:param first: First name
:param last: Last name
:return: Fullname
"""
return f"{first} {last}"
doc = docstring_parser.parse(get_fullname.__doc__)
for param in doc.params:
print(param.arg_name, param.description)
print(doc.returns.description)
Это выводит:
first First name
last Last name
Fullname
Также есть встроенный атрибут .__doc__ для таких вещей, как функции и классы (без установки дополнительных модулей). Например:
def get_fullname(first: str, last: str = "Miller"):
"""
:param first: First name
:param last: Last name
:return: Fullname
"""
return "{first} {last}"
print(get_fullname.__doc__)
Урожайность:
:param first: First name
:param last: Last name
:return: Fullname
Хотя не уверен, что это то, что вы собираетесь найти. Это просто печатает строку документации напрямую и не анализирует ее, как ответ @blhsing.