【问题标题】:How do I show my argspec/docstring in bpython?如何在 bpython 中显示我的 argspec/docstring?
【发布时间】:2011-03-25 18:52:49
【问题描述】:

我刚开始使用bpython,主要是因为我真的认为它对office nubs 有很大帮助。在 bpython 中,它会在您键入时不断显示帮助文本。例如

>>> 拉链( ┌────────────────────────────────────────────────── ────────────────────────┐ │ zip: (seq1 [, seq2 [...]]) │ │ zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)] │ │ │ │ 返回一个元组列表,其中每个元组包含第 i 个元素 │ │ 从每个参数序列。返回的列表被截断│ │ 长度为最短参数序列的长度。 │ └────────────────────────────────────────────────── ────────────────────────┘

这对于受教育程度较低的人(甚至像我这样的新手)来说非常有用。但是,我的自定义构建函数没有任何显示。我想也许它只是显示文档字符串,所以我将文档字符串添加到我的函数中。没有改变。有人可以向我解释这里显示的内容以及如何将其添加到我的函数中吗?

编辑: 这一定是一些奇怪的继承问题。这是通过 Django 的自定义管理器完成的。

类 PublicationManager(models.Manager): """吹嘘""" 定义函数(arg): """富""" 经过 类出版物(模型。模型): 对象 = PublicationManager()

键入 PublicationManager.funct( 会显示文档字符串,但 Publication.objects.funct( 不会。我想小伙伴们将不得不自己解决这个问题。

【问题讨论】:

    标签: python bpython


    【解决方案1】:

    将您的文档字符串添加为函数的第一行:

    def funct():
        "This function is self-documenting"
        pass
    

    如果跨越多行,请使用三引号:

    def funct():
        """
         This function doesn't expect arguments
         and returns zero.
        """
        return 0
    

    要获得 repl 中的帮助,请使用 help():

    >>> help(funct)
    

    或者以编程方式获取文档字符串,使用__doc__:

    >>> print funct.__doc__
    This function doesn't expect arguments
    and returns zero.
    >>> 
    

    【讨论】:

    • 看起来他已经尝试过了(“我想也许它只是显示文档字符串,所以我在我的函数中添加了文档字符串。没有任何改变。”)。
    • @Bastien @yan 是的,我很愚蠢,没有尝试超级简单的案例。对不起。我进一步解释了这个问题。我认为它无法修复。
    【解决方案2】:

    在你的函数行之后添加它:

    def myFunc():
        """You Doc String Here
        (even multiline)"""
        pass
    

    类也是一样的:

    class MyClass():
        """Class Documentation"""
        def __init__(self):
            """Function Documentation"""
            pass
    

    但是对于模块,您在文件顶部编写文档:

    #File: mymodule.py
    """Module Documentation"""
    
    class Classes()...
    def functions()...
    

    现在,如果您将其导入主文件:

    import mymodule.py
    print mymodule.__doc__
    

    【讨论】:

    • '害怕那甚至不是 python。文档字符串也位于 def 内部,而不是在其上方。
    • 好的谢谢我在doxigen的气氛中:)我纠正了它。
    • 应该是def而不是function
    猜你喜欢
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    相关资源
    最近更新 更多