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

转载于:https://www.cnblogs.com/kaid/p/7992240.html

python中的pydoc相关推荐

  1. 语句与语法笔记:学会python中_doc_和pydoc——python学习手册笔记之3

    标题## 语句与语法:学会python中的_doc_和pydoc--python学习手册笔记之3 光看书不练习很难学好python,光看书不做点学习笔记,恐怕连书本的东西也是半知半解,不知所云.这手册 ...

  2. python中的文档字符串(docString)

    python中的文档字符串(docString) - 泥土 - 博客园 python中的文档字符串(docString) Posted on 2009-02-19 15:27 泥土 阅读(2122) ...

  3. 如何在Python中打印到stderr?

    有几种写stderr的方法: # Note: this first one does not work in Python 3 print >> sys.stderr, "spa ...

  4. 如何知道对象在Python中是否具有属性

    有没有办法在Python中确定对象是否具有某些属性? 例如: >>> a = SomeClass() >>> a.someProperty = value > ...

  5. 如何优雅的在python中暂停死循环?

    死循环 有时候在工作中可能会遇到要一直执行某个功能的程序,这时候死循环就派上用途了,python中死循环的具体形式大致如下 while True:run_your_code() 结束死循环 通常我们结 ...

  6. 关于python中的dict和defaultdict

    dict 在Python中如果访问字典中不存在的键,会引发KeyError异常,所以一般当我们比如统计一句话的词频时候,我们总是使用这样的处理方式: strings = ('puppy', 'kitt ...

  7. python中的新式类与旧式类的一些基于descriptor的概念(上)

    python中基于descriptor的一些概念(上) 1. 前言 2. 新式类与经典类 2.1 内置的object对象 2.2 类的方法 2.2.1 静态方法 2.2.2 类方法 2.3 新式类(n ...

  8. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  9. Python中正则表达式用法 重点格式以这个为准_首看_各种问题

    20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...

最新文章

  1. 【PCL】的五大依赖库及作用
  2. Mybatis中的模糊查询
  3. [实战]HM-Router configuration for TP ROOM
  4. 插入模板_现场组装楼梯踏步模板施工支设细节
  5. Alibaba Sentinel规则持久化-拉模式-手把手教程【基于文件】
  6. ajax each 多级联动,jQuery多级联动效果
  7. BZOJ 1831 逆序对
  8. select不能触发change_SQL之警觉触发
  9. Caffe学习3:Layer
  10. C# winform 如何让TextBox文本内容垂直居中?
  11. 解决9341系列LCD,使用杜邦线等连接线,造成白屏问题
  12. OneFlow源码解析:静态图与运行时
  13. 辽宁科技大学计算机与软件工程学院调剂,辽宁科技大学2019年硕士研究生调剂信息...
  14. numpy相关介绍和基本操作
  15. Word无法打开该文件,因为文件格式与扩展名不匹配
  16. 地推项目大全_地推吧:app线上推广渠道大全(软件app上新地推)
  17. 自定义绘制treeview,重绘treeview
  18. 对云计算,大数据和人工智能的浅谈(一)
  19. 4个最新临时邮箱,全方位保护你的隐私
  20. 构建告警管理可观察性智能平台

热门文章

  1. mysql乐观锁实现_mysql实现乐观锁实例(demo)
  2. 基于JAVA无人值守台球厅智能管理监控系统计算机毕业设计源码+数据库+lw文档+系统+部署
  3. linux udev 命令,Linux下udev详细介绍
  4. 102.1 html radio单选框默认选中
  5. iPhone中播放声音
  6. 2021年C证(安全员)免费试题及C证(安全员)模拟考试题
  7. 闪存备份,记录平时一些小随笔
  8. C语言:饮料促销问题
  9. IA-32、IA-64、AMD64、intel64、x86、x86-64、x64等等关于CPU本身的区别
  10. IOS模仿IOS系统的assistive-touch