在终端上输入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

python中的pydoc的更多相关文章

  1. 查看python中模块的所有方法

    查看python中模块的所有方法     安装的python模块,现将查看方法总结如下 一.CMD命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交 ...

  2. [转]Python中的str与unicode处理方法

    早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...

  3. python中的Ellipsis

    ...在python中居然是个常量 print(...) # Ellipsis 看别人怎么装逼 https://www.keakon.net/2014/12/05/Python%E8%A3%85%E9 ...

  4. python中的默认参数

    https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): tar ...

  5. Python中的类、对象、继承

    类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...

  6. python中的TypeError错误解决办法

    新手在学习python时候,会遇到很多的坑,下面来具体说说其中一个. 在使用python编写面向对象的程序时,新手可能遇到TypeError: this constructor takes no ar ...

  7. python中的迭代、生成器等等

    本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来 ...

  8. python2.7高级编程 笔记二(Python中的描述符)

    Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解.这些特性包括列表/集合/字典推导式,属性(property).以及装饰器(decorator).对于大部分特性来说,这些" ...

  9. python cookbook 学习系列(一) python中的装饰器

    简介 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓 ...

随机推荐

  1. WebGL画一个10px大小的点

    WebGL程序在屏幕上同时使用HTML和javascript来创建和显示三维图形.WebGL中新引入的<canvas>元素标签,它定义了网页上的绘图区域. 由于<canvas> ...

  2. elasticsearch 第二篇(配置篇)

    配置 在es启动之前可以通过设置启动命令行启动参数.环境变量.文件等方式优化和配置es进行参数 环境变量 名称 示例 说明 ES_MIN_MEM 256M 用于配置java进程分配的最小内存 ES_M ...

  3. 【Python简介】

    一.Python的简介 1.什么是python? Python(发音:[ 'paiθ(ə)n; (US) 'paiθɔn ]),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用 ...

  4. Android Studio常用的快捷键

    罗列一些常用的快捷键 全局快捷键(比较重要的)   ALT + ENTER 工程快速修复 CTRL + SHIFT + A 快速查找 CTRL + ALT + L (Win) 格式化代码(我的锁屏的快 ...

  5. maven使用ss代理

    把maven安装目录下的conf/settings.xml复制一份到~/.m2/下 在<proxies>标签中添加 <proxy> <id>socks5</i ...

  6. phpmyadmin 登录时间修改

    登录后1440秒未活动后总是自动退出,一天还要登录多次,终于有时间来解决这个问题了,感觉是session超时,结果在网上search了下,找到解决办法啦,哈哈哈,在此做个笔记:phpmyadmin在使 ...

  7. duilib 增加gif控件(基于gdi+,可控制播放暂停,自动设置大小)

    转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/42502081 因为项目需要我需要给duilib增加一个gif控件,目前已 ...

  8. MyBatis操作oracle的一些问题加载

    mybatis在更新数据或者插入数据为空的时候必须指定jdbcType类型 1:传入的参数是对象类型 User user =new User(); INSERT INTO t_user ( id, u ...

  9. gulpfile.js文档

    gulp watch 实现监听不仅需要package.json文档,还需要gulpfile.js文档.否则无法实现. 1.gulp的安装 1.1 首先必须先安装node.js.这个可以参考之前的博客& ...

  10. DEV GridControl打印 导出

    /// <summary> /// 打印 /// </summary> /// <param name="sender"></param& ...