python中的pydoc

在终端上输入pydoc会显示以下信息

pydoc - the Python documentation tool

pydoc <name> ...

Show text documentation on something.  <name> may be the name of a

Python keyword, topic, function, module, or package, or a dotted

reference to a class or function within a module or module in a

package.  If <name> contains a ‘/‘, it is used as the path to a

Python source file to document. If name is ‘keywords‘, ‘topics‘,

or ‘modules‘, a listing of these things is displayed.

pydoc -k <keyword>

Search for a keyword in the synopsis lines of all available modules.

pydoc -p <port>

Start an HTTP server on the given port on the local machine.  Port

number 0 can be used to get an arbitrary unused port.

pydoc -b

Start an HTTP server on an arbitrary unused port and open a Web browser

to interactively browse documentation.  The -p option can be used with

the -b option to explicitly specify the server port.

pydoc -w <name> ...

Write out the HTML documentation for a module to a file in the current

directory.  If <name> contains a ‘/‘, it is treated as a filename; if

it names a directory, documentation is written for all the contents.

pydoc是python自带的一个文档生成工具,使用pydoc可以很方便的查看类和方法结构

python中pydoc模块可以从python代码中获取docstring,然后生成帮助信息。

pydoc是Python自带的模块,主要用于从python模块中自动生成文档,这些文档可以基于文本呈现的、也可以生成WEB 页面的,还可以在服务器上以浏览器的方式呈现!

python -m pydoc -p 1234     在本地机器上,按照给定的端口启动HTTP

一、查看文档的方法

方法1:启动本地服务,在web上查看文档

命令【python3 -m pydoc -p 1234】

通过http://localhost:1234来访问查看文档

说明:

1、-p指定启动的服务的端口号,可以随意指定不冲突的端口号

2、只有在自建的工程根目录下使用该命令,才能看到当前工程下所有的内容,否则只能看到python环境变量下的模块内容

3、如果本地只有一个python,可以直接使用【pydoc -p 端口号】启动,但因为我本地有python2和python3,所以指定了用python3

方法2:直接查看某个py文件的内容

例子:新建了一个py文件叫做testpydoc.py,进入testpydoc.py所在目录

python3 -m pydoc testpydoc

方法三:生成html说明文档

例子:新建了一个py文件叫做testpydoc.py,进入testpydoc.py所在目录

python3 -m pydoc -w testpydoc

会默认将当前目录下的testpydoc生成一个叫做testpydoc.html的文档,如果是目录直接【python3 -m pydoc -w 目录名】生成文档

说明:如果是将整个目录生成这种格式,不建议用这种方式,因为如果他展示目录下的子文件的说明时,会去子目录下找对应.html文件,如果文件不存在,就会404

方法四:-k查找模块

py通过-k查找模块,会在当前工程目录以及python环境变量目录下查找包含关键词的模块信息

【python3 -m pydoc -k 关键词】

例如如下命令:

python3 -m pydoc -k  testpydoc

结果如下:

testpydoc - @author 每天1990

二、html文档说明

通过查看文档的方法,我们可以看到在html的文档主要分成四部分:py文件的顶部注释、Classes、Functions、Data

(示例代码见结尾部分)

第一部分:模块的文档说明,展示模块顶部的多行注释

注释内如果包含了模块文件内的class名,或方法名(),则显示蓝色,且可以点击跳转到对应说明位置

第二部分:classes,展示class以及class下的function

1.只能展示class下的注释,不会展示class下方法的注释

2.class上面有#注释时,展示#号的注释

3.class下有”””多行注释”””时优先展示多行注释,就不展示顶部的#号的注释了

第三部分:function,模块下的def方法,不是class中的方法

1.function上面有#注释时,展示#号的注释

2.function下有”””多行注释”””时优先展示多行注释,就不展示顶部的#号的注释了

第四部分:data,模块下直接定义的变量,不是function或class的变量

示例代码:

"""
@author 每天1990
@desc 本模块是一个测试文件,用来说明pydoc的读取内容
@date 2017/4/13
说明:
classes:testclass(),具有function1()和function2()两个方法

function:test1(),test2(),test3()

Data:a,b
"""

#注释放在方法名前,使用#号注释
def test1(a):
    print("注释放在方法名前")

#注释放在方法名前,使用#号注释
def test2():
    """
    注释放在方法内的第一行,既有#号又有多行注释时,优先展示多行注释
    """
    print("既有#号又有多行注释时,优先展示多行注释 ")

def test3():
    #在方法第一行内使用#注释
    print("在方法内使用#号注释,不生效")

class testclass():
    """
    注释生效顺序与方法一致,优先展示类下的多行注释,如果没有才展示类上面的#号注释
    类下的方法的注释不会展示出来
    """
    def function1(self):#类下方法的注释不会展示
        print("类下的第一个方法")
    def function2(self,a):
        print("类下的第二个参数,包含a参数")

a=1#变量的注释不会展示出来
b=2

三、注释方法

通过上面的文档说明,我们可以合理的注释,有助于了解工程结构

python的注释方法有两种:

1.单行注释:使用#号进行注释

#单行注释

 

2.多行注释:使用三个双引号或单引号来注释多行内容

‘‘‘
单引号进行多行注释

‘‘‘

 

"""

双引号进行多行注释

"""

pydoc注释展示策略:

在functions和classes前面加#注释,或者在function和class第一行内加三个单引号或三个双引号进行注释

如果有三个引号的注释方法,会优先使用三个点的注释,其次才展示#号的注释

注意:如果在方法或class定义后第一行使用#注释是拉取不到注释的

例子1:class前有#号注释,class内有多行注释,pydoc会优先展示三个点内的注释

例子2:方法内使用#号注释,pydoc不会显示注释内容(class同理)

例子3:方法或class没有多行注释,只在方法外有#号注释时,会展示定义前的#号内的内容

例子4:模块顶部的内容,优先展示多行注释中的内容

转载自:https://www.cnblogs.com/meitian/p/6704488.html

时间: 2024-10-10 17:57:41

python中的pydoc的相关文章

Python中的PyDoc介绍

很简单的.cmd运行一下pydoc看看? 会发现它有一个选项为-p 即运行在http协议上. 我们这样运行一下:pydoc -p 7766 然后打开你的浏览器输入:,呵呵,你看到了什么? 是不是看到所有模块说明的文档啊.

python中pydoc用法

pydoc python中pydoc模块可以从python代码中获取docstring,然后生成帮助信息 windows环境下,运行: Linux环境下直接运行: HTML帮助 pydoc还可以生成HTML输出,既可以将HTML帮助信息输出到静态文本中,也可以启动一个Web服务器在线浏览帮助文档.Windows环境下: Linux环境下: 交互式帮助 pydoc还未__builtins__添加了一个函数help(),从而可以在解释器窗口访问同样的信息. https://www.jianshu.c

Python 中 open() 的 mode 参数总结

参考 : http://www.newsmth.net/nForum/#!article/Python/54311 pydoc 中的 file 一节 Python 中打开一个文件的函数 open() 的第二个参数指明了打开的模式. 可以赋予该参数的实参 *枚举* 如下 : 'r', 'r+', 'w', 'w+', 'a', 'a+', 'rU' 其中 : 'r' : 以只读模式打开 'r+' : 以读写模式打开, 写的指针刚开始指在文件开头, 因此会覆写文件 'w' : 清空文件, 不能使用

查看python中模块的所有方法

查看python中模块的所有方法 安装的python模块,现将查看方法总结如下 一.CMD命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交互解释器中使用help()查看 在交互式解释器中输入>>> help("modules")即可,效果跟在命令行下输入$ pydoc modules是一样的 三.在python交互的解释器下导入sys模块查看 # python的sys模块也是可以用来查看模块信息的     >

走入计算机的第四十天(python中sockserver模块)

一.Python中的sockserver模块 1.该模块与sock模块不同之处是该模块自动帮我们分装好了一些功能,让我们在编程的时候直接调用这些功能就可以了,节省了编程步骤. 2.如图所示 注释:上图为服务端设置 该模块的操作方法比较死板,我们只要会熟悉的使用他就可以了.

python中if __name__ == &#39;__main__&#39;:

Using a module's __name__ Example? 8.2.? Using a module's __name__ #!/usr/bin/python # Filename: using_name.py if __name__ == '__main__': print 'This program is being run by itself' else: print 'I am being imported from another module' Output $ pytho

关于Python中的yield

关于Python中的yield http://www.cnblogs.com/tqsummer/archive/2010/12/27/1917927.html http://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/ 一.迭代器(iterator) 在Python中,for循环可以用于Python中的任何类型,包括列表.元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器 迭代器是一个实现了迭代器协议

python中的那些“神器”

"武林至尊,宝刀屠龙,号令天下,莫敢不从,倚天不出,谁与争锋",这是神器.不过今天要说的python中的"神器"就没有这么厉害了,这里要说的"神器"其实就是名称里面带了个"器"的,如下: 列表解析器 迭代器 生成器 装饰器 列表解析器 现在遇到了这样一个问题需要解决:"有一个数字的列表,要求对该列表中的奇数乘以2,返回处理完成后的列表(不改变原来列表的顺序,仅对列表中的奇数乘以2)",比较传统的方法可能会是

Python中字符串格式化如何实现?

Python开发中字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing '%' string formatting operator. 1.百分号方式 %[(na