如何在bpython中显示我的argspec / docstring?

时间:2011-03-25 18:52:50

标签: python bpython

我刚刚开始使用bpython,主要是因为我真的认为它会帮助办公室小心点。在bpython中,它会在您键入时不断显示帮助文本。例如

>>> zip(
┌────────────────────────────────────────────────────────────────────────┐
│ zip: (seq1 [, seq2 [...]])                                             │
│ zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]            │
│                                                                        │
│ Return a list of tuples, where each tuple contains the i-th element    │
│ from each of the argument sequences.  The returned list is truncated   │
│ in length to the length of the shortest argument sequence.             │
└────────────────────────────────────────────────────────────────────────┘

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

编辑: 它必定是一些奇怪的继承问题。这是由Django的自定义经理完成的。

class PublicationManager(models.Manager):
    """blarg"""
    def funct(arg):
        """foo"""
        pass

class Publication(models.Model):
    objects = PublicationManager()

键入PublicationManager.funct(会显示文档字符串,但Publication.objects.funct(则不会。我想这些小块必须自己搞清楚。

2 个答案:

答案 0 :(得分:3)

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

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.
>>> 

答案 1 :(得分:0)

在功能行后添加:

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__