2011-03-25 19 views
0

我剛剛開始使用bpython,主要是因爲我真的認爲它會幫助辦公室非常多。在bpython中,它會在您輸入時不斷顯示幫助文本。例如如何在bpython中顯示我的argspec/docstring?

 
>>> 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(沒有。我猜這些節點將不得不爲自己弄明白。

回答

3

添加您的文檔字符串作爲你的函數的第一行:

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

使用三引號或者其跨越多行:

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

要獲得在REPL使用幫助的幫助():

>>> help(funct) 

或者以編程方式獲取文檔字符串,請使用__doc__

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

看起來他已經試過了(「我想也許它只是顯示文檔字符串,所以我添加了文檔到我的函數,沒有什麼改變。」)。 – 2011-03-25 19:09:18

+0

@Bastien @yan是的,我是愚蠢的,沒有嘗試超級簡單的情況。抱歉。我進一步解釋了這個問題。我不認爲它可以修復。 – chriscauley 2011-03-25 19:13:59

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__ 
+0

'這甚至不是蟒蛇。另外,文檔符合def的內部,而不是上面。 – 2011-03-25 18:58:23

+0

好的,謝謝我在doxigen的氣氛:)我糾正它。 – Hossein 2011-03-25 19:03:05

+0

應該是def而不是函數 – 2011-03-25 20:17:59