0

我有一些我写的类,其中一些我确实添加了一些文档字符串,比如在类标题中。

现在我想使用 pydoc 来生成文档,但我意识到 pydoc 不会打印任何东西,除非我真的在类中编写了 doc 部分,这不是我想要的。

有没有办法让 pydoc 生成所有属性、方法及其类型的列表,包括所需参数的类型(如果有)和返回的类型(如果有)?

如果我有这样的课程:

class myclass(object):

    def __init__(anumber=2, astring="hello"):
        self.a = anumber
        self.b = astring

    def printme(self):
        thestring = self.a + self.b + "\nthat's all folks\n"
        return thestring

    def setvalues(self, a_number, a_string):
        self.a = a_number
        self.b = a_string

我想打印一些包含类名、类方法、数据类型的内容:

class name
what parameters it takes in the init and the type of the parameters

method name
what parameters it takes and the type of the parameters
what value return and its type.

我相信 pydoc 不会那样做。还有其他方法吗?

我可以添加文档字符串以供稍后解释,但首先,我想打印出我的模块中的内容,以了解它需要什么,它返回什么等等。

4

1 回答 1

2

Pydoc 应该为您提供骨架详细信息,与 一样help(myclass),这将向您显示您的类的函数签名,而无需任何文档字符串。您可以使用 pydoc 模块来获取此帮助信息:

$ pydoc MyClass.myclass
Help on class myclass in MyClass:

class myclass(builtins.object)
 |  Methods defined here:
 |  
 |  __init__(anumber=2, astring='hello')
 |  
 |  printme(self)
 |  
 |  setvalues(self, a_number, a_string)
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)

您可以使用pydoc模块以编程方式执行此操作:

>>> import pydoc
>>> import MyClass
>>> h = pydoc.plain(pydoc.render_doc(MyClass))
>>> print h
于 2015-09-10T21:46:15.327 回答