Python_代码风格_合理分解代码,提高代码可读性
一.什么是PEP8
PEP 是 Python Enhancement Proposal 的缩写,翻译过来叫“Python 增强规范”。正如我们写文章,会有句式、标点、段落格式、开头缩进等标准的规范一样,Python 书写自然也有一套较为官方的规范。PEP 8 就是这样一种规范,它存在的意义,就是让 Python 更易阅读,换句话,增强代码可读性。
二.日常的代码规范
缩进规范
- Python 的缩进其实可以写成很多种,Tab、双空格、四空格、空格和 Tab 混合等。而 PEP 8 规范告诉我们,请选择四个空格的缩进,不要使用 Tab,更不要 Tab 和空格混着用。
- 第二个要注意的是,每行最大长度请限制在 79 个字符。这条规定另一方面也在制约着程序员,不要写迭代过深的代码,而是要思考继续把代码分解成其他函数或逻辑块,来优化自己的代码结构。
空行规范
- 全局的类和函数的上方需要空两个空行
- 类的函数之间需要空一个空行
- 函数内部也可以使用空行,和英语的段落一样,用来区分不同意群之间的代码块。但是记住最多空一行,千万不要滥用。
- 即使是使用控制语句 if / while / for,你的执行语句哪怕只有一行命令,也请另起一行,这样可以更大程度提升阅读效率。
- 至于代码的尾部,每个代码文件的最后一行为空行,并且只有这一个空行。
空格规范
- 函数的参数列表中,调用函数的参数列表中会出现逗号,请注意逗号后要跟一个空格,这是英语的使用习惯,也能让每个参数独立阅读,更清晰。
- 冒号经常被用来初始化字典,冒号后面也要跟一个空格。
- Python 中我们可以使用#进行单独注释,请记得要在#后、注释前加一个空格。
- 对于操作符,例如+,-,*,/,&,|,=,==,!=,请在两边都保留空格。不过与此对应,括号内的两端并不需要空格。
换行规范
控制每行的最大长度不超过 79 个字符,但是有时候,函数调用逻辑过长而不得不超过这个数字时,该怎么办呢?
- 第一种,通过括号来将过长的运算进行封装,此时虽然跨行,但是仍处于一个逻辑引用之下。
- 第二种,则是通过换行符来实现。
文档规范
- 所有 import 尽量放在开头
- 不要使用 import 一次导入多个模块
- 如果你=采用 from module import func 这样的语句,请确保 func 在本文件中不会出现命名冲突
注释规范
改动代码的时候,一定要注意检查周围的注释是否需要更新。
文档描述
至于 docstring 的写法,它是用三个双引号开始、三个双引号结尾。我们首先用一句话简单说明这个函数做什么,然后跟一段话来详细解释;再往后是参数列表、参数格式、返回值格式。
命名规范
- 变量名请拒绝使用 a b c d 这样毫无意义的单字符,我们应该使用能够代表其意思的变量名。
- 一般来说,变量使用小写,通过下划线串联起来,例如:data_format、input_spec、image_data_set。
- 唯一可以使用单字符的地方是迭代,比如 for i in range(n) 这种,为了精简可以使用。
- 如果是类的私有变量,请记得前面增加两个下划线。
- 对于常量,最好的做法是全部大写,并通过下划线连接,例如:WAIT_TIME、SERVER_ADDRESS、PORT_NUMBER。
- 对于函数名,同样也请使用小写的方式,通过下划线连接起来,例如:launch_nuclear_missile()、check_input_validation()。
- 对于类名,则应该首字母大写,然后合并起来,例如:class SpatialDropout2D()、class FeatureSet()。
Python_代码风格_合理分解代码,提高代码可读性相关推荐
- pycharm格式化代码快捷键_你写的 Python 代码总是不规范?用它!
今天咱们来说说代码风格不同的编程语言有不同的代码风格 Python 的代码规范就是人们常说的 PEP8 在这个网站https://www.python.org/dev/peps/pep-0008/#i ...
- java代码识别_识别Java中的代码气味
java代码识别 作为软件开发人员,我们不仅要编写有效的代码,而且还要编写可维护的代码,这是我们的责任. Martin Fowler在他的<重构:改进现有代码的设计>中将代码气味定义为: ...
- 存储过程可重用的代码块_如何使您的代码可重用
可重用代码不是通用代码 Image Credits: Pixabay.com 可重用的代码作为解决所有软件问题的一站式解决方案,是一个危险的神话. 让我解释一下原因. 假设您正在编写软件库. 您脑中冒 ...
- python骂人代码大全_边看chromium的代码,边想骂人...
这一年一直在看chromium for android的代码,边看边想骂,谷歌这帮人.. 一开始搞了个牛逼的架构,在安卓4.4上把以前android webkit团队的简单版替换掉了, 结果发现性能大 ...
- 【代码质量管理工具】--使用sonarLint提高代码质量
[背景] 项目组,在12月份的时候使用了强大的代码质量管理工具--Sonar来检测规范我们的代码,但是当时使用的时候会有一个缺陷,就是我每使用一次maven命令将代码扫描到sonarqube的网页端, ...
- python代码规范化_最流行的Python代码规范
PEP 8等规范性文件试图统一Python的编码风格,那么实际效果到底如何呢? sideeffect.kr通过分析GitHub上托管的开源代码,得出了一些有趣的结果.一起来看看吧. 使用空格还是Tab ...
- 看网易云公开课代码性能开发有感,怎样提高代码的性能
看到网易云讲到写一个缓存机制,什么时候用缓存机制,当有大量重复计算的时候,计算的难度不是很简单,如果是很简单的计算不要用缓存机制,不然会浪费大量的性能 在取HTMLCollection对象时,通常循环 ...
- 代码迁移_三种类型的代码迁移
代码迁移 随着代码变老,通常有必要对其进行现代化. 有以下动机: 我们找到了一种更好的方法 我们需要出于支持/许可或仅出于最佳实践的原因而更新核心库/技术 我们需要在更现代的基础架构上运行该软件 简而 ...
- 2019机器学习代码实现_如何用3行代码实现任何机器学习项目
2019机器学习代码实现 Wouldn't it be great to be able to solve complex machine learning problems quickly and ...
最新文章
- python --error整理(不定时更新)
- 记录避免一些逻辑问题的过程
- Android React Native 笔记(一):基础
- linux 访问磁盘bin,zabbix应用之Low-level discovery监控磁盘IO
- 38行代码AC——L1-025 正整数A+B (15分)(~解题报告~)
- MySQL 删除视图
- [ES6] 细化ES6之 -- Class关键字
- 实际项目开发管理流程图
- 程序设计与算法----递归之n皇后问题
- 怡丰机器人上市_【利元亨 | 复盘】十家自动停车机器人大PK,你更看好谁?
- 服务器bios 虚拟化,hp服务器bios开启虚拟化(hp主板开启虚拟化)
- ajax响应速度慢,jQuery Ajax请求的响应速度变化
- 怎么将自己的头像p到特定的背景图_怎么使用PS抠图,把扣出来的图片P到另张图上...
- Sklearn实现非线性回归
- _032_rationalRose_包图的画法
- 【填充插件】自定义填充图案制作插件
- 如何实现JS主动触发事件
- 学生成绩处理(函数版)
- 盖茨开始闭关修炼 冥思微软之大未来(引用)
- 实战揭露360和QQ医生系统漏洞检测真相!