首页 > 解决方案 > 以编程方式获取 python 函数参数的描述

问题描述

假设我有以下功能:

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'>})

无论如何我可以以编程方式获取这些参数的描述吗?看起来不可能,但只是确保。看起来这是指定 types的 PyCharm 方式。

标签: pythonarguments

解决方案


您可以安装和使用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

推荐阅读