原文地址: https://www.cnblogs.com/meitian/p/6704488.html
pydoc用法
pydoc是python自带的一个文档生成工具,使用pydoc可以很方便的查看类和方法结构

本文主要介绍:1.查看文档的方法、2.html文档说明、3.注释方法、

一、查看文档的方法
方法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:模块顶部的内容,优先展示多行注释中的内容

转 -- pydoc用法的更多相关文章

  1. 笨办法学Python记录--习题12-14 主要是pydoc用法,raw_input,argv

    20140413 -- 习题12 - 14 1. pydoc在windows的用法,必须进入到python安装目录,执行Python -m pydoc raw_input; 网上给出了一个好玩的,不过 ...

  2. pydoc用法

    pydoc是python自带的一个文档生成工具,使用pydoc可以很方便的查看类和方法结构   本文主要介绍:1.查看文档的方法.2.html文档说明.   一.查看文档的方法 方法1:启动本地服务, ...

  3. Python 中 -m 的典型用法、原理解析与发展演变

    在命令行中使用 Python 时,它可以接收大约 20 个选项(option),语法格式如下: python [-bBdEhiIOqsSuvVWx?] [-c command | -m module- ...

  4. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  5. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  6. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  7. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  8. python enumerate 用法

    A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...

  9. [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...

随机推荐

  1. HTML使用button的一个小坑

    https://www.w3schools.com/TAGs/att_button_type.asp Definition and Usage The type attribute specifies ...

  2. hive视图

    简化复杂的查询 员工好.姓名.月薪.年薪.在一个emp表中; 部门名称在dept的表中;并未年薪起了一个名字annlsal 查询视图 视图是一个虚表,是不存数据的

  3. PHP的安装,编译,扩展工具

    1.基本容易混淆的概念 pecl php的社区贡献扩展库,全称为PHP Extension Community Library, 是php的底层库, 使用C语言编写 pear php的应用扩展库,全称 ...

  4. DevexpressVCL v51

    Dev经典套件v49版 支持Delphi2010 DevExpress公司出品的Borland Delphi和C++ Builder的控件(包含完整源代码).ExpressVerticalGrid:就 ...

  5. html 腳本

    腳本引入: <script type="text/script"> document.write("hello")</script> 腳 ...

  6. Nodejs+Express+Mysql实现简单用户管理增删改查

    源码地址 https://github.com/king-y/NodeJs/tree/master/user 目录结构 mysql.js var mysql = require('mysql'); v ...

  7. IDEA常见设置

    对于eclipse实在忍无可忍,各种功能各种bug..换回IDEA IDEA常见问题(其实不是问题,代码规范而已) 1.解决无限 This file is indented with tabs ins ...

  8. 【 Gym - 101138F 】GukiZ Height (数学)

    BUPT2017 wintertraining(15) #4 C Gym - 101138F 题意 初始高度0,目标值h,第i天目标值会下降i,当前高度会改变a[i%n],求高度不小于目标值的最早的时 ...

  9. 【BZOJ4903】【UOJ#300】吉夫特(卢卡斯定理,动态规划)

    [BZOJ4903][UOJ#300]吉夫特(卢卡斯定理,动态规划) 题面 UOJ BZOJ:给的UOJ的链接...... 题解 首先模的质数更小了,直接给定了\(2\).当然是卢卡斯定理了啊. 考虑 ...

  10. 【BZOJ1814】Ural 1519 Formula 1 (插头dp)

    [BZOJ1814]Ural 1519 Formula 1 (插头dp) 题面 BZOJ Vjudge 题解 戳这里 上面那个链接里面写的非常好啦. 然后说几个点吧. 首先是关于为什么只需要考虑三进制 ...