首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解析numpydoc文档字符串和访问组件?

如何解析numpydoc文档字符串和访问组件?
EN

Stack Overflow用户
提问于 2016-06-20 18:56:52
回答 1查看 1.9K关注 0票数 9

我想解析一个numpydoc文档字符串并以编程方式访问每个组件。

例如:

代码语言:javascript
复制
def foobar(a, b):
   '''Something something

   Parameters
   ----------
   a : int, default: 5
        Does something cool
   b : str
        Wow
'''

我想做的是:

代码语言:javascript
复制
parsed = magic_parser(foobar)
parsed.text  # Something something
parsed.a.text  # Does something cool
parsed.a.type  # int
parsed.a.default  # 5

我一直在搜索,发现了像农比多拿破仑这样的东西,但是我还没有找到在我自己的程序中如何使用它们的好线索。我很感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-11 07:33:35

您可以使用来自numpydocnumpydoc将文档字符串解析为Python友好的结构。

这是如何使用它的一个例子:

代码语言:javascript
复制
from numpydoc.docscrape import NumpyDocString


class Photo():
    """
    Array with associated photographic information.


    Parameters
    ----------
    x : type
        Description of parameter `x`.
    y
        Description of parameter `y` (with type not specified)

    Attributes
    ----------
    exposure : float
        Exposure in seconds.

    Methods
    -------
    colorspace(c='rgb')
        Represent the photo in the given colorspace.
    gamma(n=1.0)
        Change the photo's gamma exposure.

    """

    def __init__(x, y):
        print("Snap!")

doc = NumpyDocString(Photo.__doc__)
print(doc["Summary"])
print(doc["Parameters"])
print(doc["Attributes"])
print(doc["Methods"])

但是,由于我不理解的原因,您给出的示例(以及我想运行的大量代码)将无法工作。相反,您需要根据用例使用特定的FunctionDocClassDoc类。

代码语言:javascript
复制
from numpydoc.docscrape import FunctionDoc

def foobar(a, b):
   """
   Something something

   Parameters
   ----------
   a : int, default: 5
        Does something cool
   b : str
        Wow
   """

doc = FunctionDoc(foobar)
print(doc["Parameters"])

我通过看这个测试在他们的源代码中就知道了这一切。因此,这不是真正的文档,但希望对您来说已经足够开始。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37929851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档