Python 开发工具 Pycharm —— 使用技巧Lv.2

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:模块顶部的内容,优先展示多行注释中的内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/66278.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

剑指Offer12.矩阵中的路径 C++

1、题目描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平…

关于Express 5

目录 1、概述 2、Express 5的变化 2.1 弃用或删除内容的列表: app.param(name,fn)名称中的前导冒号(:) app.del() app.param(fn) 复数方法名 res.json&#xff0…

Python批量查字典和爬取双语例句

最近,有网友反映,我的批量查字典工具换到其它的网站就不好用了。对此,我想说的是,互联网包罗万象,网站的各种设置也有所不同,并不是所有的在线字典都可以用Python爬取的。事实上,很多网站为了防…

计算机是怎么存储和识别人类高级语言的

目录 1、计算机是怎么“存储”人类的高级语言的?2、 UTF-8和UTF-32的区别3、UTF-8是如何区分字节的长度呢?(即如何识别这一串二进制是多少个字节的?)4、计算机是如何识别人类的高级语言的? 1、计算机是怎么…

八、复用(1)

本章概要 组合语法继承语法 初始化基类带参数的构造函数 委托 代码复用是面向对象编程(OOP)最具魅力的原因之一。 对于像 C 语言等面向过程语言来说,“复用”通常指的就是“复制代码”。任何语言都可通过简单复制来达到代码复用的目的&#…

使用JProfiler进入JVM分析

要评测JVM,必须将JProfiler的评测代理加载到JVM中。这可以通过两种不同的方式发生:在启动脚本中指定-agentpath VM参数,或者使用attach API将代理加载到已经运行的JVM中。 JProfiler支持这两种模式。添加VM参数是评测的首选方式,集…

【MMU】认识 MMU 及内存映射的流程

MMU(Memory Manager Unit),是内存管理单元,负责将虚拟地址转换成物理地址。除此之外,MMU 实现了内存保护,进程无法直接访问物理内存,防止内存数据被随意篡改。 目录 一、内存管理体系结构 1、…

openssl安装问题合辑

1.openssl拖累nginx编译失败 问题描述: 因为漏洞原因,升级openssl之后需要重新编译nginx,进行了以下步骤: config没问题,但是make一直报错 初步判断是openssl安装有问题,原因不明,重装了opens…

Java后台生成ECharts图片

前言 通过echarts的jar包,Java后台生成一张图片,并把图片插入到word中。关于word插图片的代码在下一章。 需要用到的工具PhantomJS,Echarts-convert.js,jquery.js,echarts.js。 1.PhantomJS 介绍 PhantomJS是一个不需要浏览器的富客户端。 官方介绍&…

第八章:Linux信号

系列文章目录 文章目录 系列文章目录前言linux中的信号进程对信号的处理信号的释义 信号的捕捉信号的捕捉signal()信号的捕捉sigaction() 信号的产生通过终端按键产生信号前台进程与后台进程 kill()用户调用kill向操作系统发送信号raise()进程自己给自己发任意信号(…

利用Google Docs的评论功能投递钓鱼链接

情报背景 利用Google drive等可信云服务进行的网络钓鱼攻击活动日益增长,这种攻击手段利用了高可信度的云服务骗取受害者的信任,并且可以绕过基于域名的安全策略。 近期Avanan公司发现了一种新的邮件钓鱼方式,攻击者利用Google docs的评论功…

计蒜客T1115——字符串判等

水题不解释,考研复习压力偶尔写一道换换心情还不错~ 这里有一个比较有趣的知识点,对于同时输入多个字符串时还要允许空格的输入,那么普通的cin函数就不能满足要求了,这里采用getline函数解决,如下: string …

使用最新技术实现智能考试系统源码

智能考试系统是一种重要的教育技术应用,它能够通过结合计算机科学和教育理论,为教育工作者提供一个高效、灵活和可靠的考试平台。最近,随着人工智能和大数据技术的飞速发展,智能考试系统受到了越来越多的关注。本文将详细介绍如何…

接口测试如何在json中引用mock变量

在测试接口的时候,有的接口需要测试随机传入大量数据,查看数据库是否正常,但是大量的随机数据全靠自己手写会很慢,而且是通过json传递的数据。 这里我们就可以使用mock生成随机变量,然后在json中引用mock变量 首先看…

ElasticSearch 7.4学习记录(基础概念和基础操作)

若你之前从未了解过ES,本文将由浅入深的一步步带你理解ES,简单使用ES。作者本人就是此状态,通过学习和梳理,产出本文,已对ES有个全面的了解和想法,不仅将知识点梳理,也涉及到自己的理解&#xf…

vue3:新特性

一、react和vue的主要区别 (1)数据更新上: 1、 react 采用 fiber架构 ,使用 链表 表示 DOM 结构可以在 diff 时随时中断和继续,利用requestIdleCallback 在空闲时 diff ,防止数据量大 diff 时间长导致卡顿…

线程池-手写线程池C++11版本(生产者-消费者模型)

本项目是基于C11的线程池。使用了许多C的新特性,包含不限于模板函数泛型编程、std::future、std::packaged_task、std::bind、std::forward完美转发、std::make_shared智能指针、decltype类型推断、std::unique_lock锁等C11新特性功能。 本项目有一定的上手难度。推…

【Linux升级之路】5_基础IO

🌟hello,各位读者大大们你们好呀🌟 🍭🍭系列专栏:【Linux升级之路】 ✒️✒️本篇内容:文件操作,文件管理,重定向,简易shell添加重定向功能,文件属…

人物启示-张一鸣与陆奇

在科技行业中,张一鸣与陆奇可谓是两位颇具影响力的人物。张一鸣和陆奇分别是字节跳动(TikTok 的母公司)的创始人和百度前总裁。张一鸣作为字节跳动的创始人,成功打造了今日头条、抖音等知名产品,而陆奇则曾任微软副总裁…

Django Rest_Framework(二)

文章目录 1. http请求响应1.1. 请求与响应1.1.1 Request1.1.1.1 常用属性1).data2).query_params3)request._request 基本使用 1.1.2 Response1.1.2.1 构造方式1.1.2.2 response对象的属性1).data2).status_code3&…