一.什么是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_代码风格_合理分解代码,提高代码可读性相关推荐

  1. pycharm格式化代码快捷键_你写的 Python 代码总是不规范?用它!

    今天咱们来说说代码风格不同的编程语言有不同的代码风格 Python 的代码规范就是人们常说的 PEP8 在这个网站https://www.python.org/dev/peps/pep-0008/#i ...

  2. java代码识别_识别Java中的代码气味

    java代码识别 作为软件开发人员,我们不仅要编写有效的代码,而且还要编写可维护的代码,这是我们的责任. Martin Fowler在他的<重构:改进现有代码的设计>中将代码气味定义为: ...

  3. 存储过程可重用的代码块_如何使您的代码可重用

    可重用代码不是通用代码 Image Credits: Pixabay.com 可重用的代码作为解决所有软件问题的一站式解决方案,是一个危险的神话. 让我解释一下原因. 假设您正在编写软件库. 您脑中冒 ...

  4. python骂人代码大全_边看chromium的代码,边想骂人...

    这一年一直在看chromium for android的代码,边看边想骂,谷歌这帮人.. 一开始搞了个牛逼的架构,在安卓4.4上把以前android webkit团队的简单版替换掉了, 结果发现性能大 ...

  5. 【代码质量管理工具】--使用sonarLint提高代码质量

    [背景] 项目组,在12月份的时候使用了强大的代码质量管理工具--Sonar来检测规范我们的代码,但是当时使用的时候会有一个缺陷,就是我每使用一次maven命令将代码扫描到sonarqube的网页端, ...

  6. python代码规范化_最流行的Python代码规范

    PEP 8等规范性文件试图统一Python的编码风格,那么实际效果到底如何呢? sideeffect.kr通过分析GitHub上托管的开源代码,得出了一些有趣的结果.一起来看看吧. 使用空格还是Tab ...

  7. 看网易云公开课代码性能开发有感,怎样提高代码的性能

    看到网易云讲到写一个缓存机制,什么时候用缓存机制,当有大量重复计算的时候,计算的难度不是很简单,如果是很简单的计算不要用缓存机制,不然会浪费大量的性能 在取HTMLCollection对象时,通常循环 ...

  8. 代码迁移_三种类型的代码迁移

    代码迁移 随着代码变老,通常有必要对其进行现代化. 有以下动机: 我们找到了一种更好的方法 我们需要出于支持/许可或仅出于最佳实践的原因而更新核心库/技术 我们需要在更现代的基础架构上运行该软件 简而 ...

  9. 2019机器学习代码实现_如何用3行代码实现任何机器学习项目

    2019机器学习代码实现 Wouldn't it be great to be able to solve complex machine learning problems quickly and ...

最新文章

  1. python --error整理(不定时更新)
  2. 记录避免一些逻辑问题的过程
  3. Android React Native 笔记(一):基础
  4. linux 访问磁盘bin,zabbix应用之Low-level discovery监控磁盘IO
  5. 38行代码AC——L1-025 正整数A+B (15分)(~解题报告~)
  6. MySQL 删除视图
  7. [ES6] 细化ES6之 -- Class关键字
  8. 实际项目开发管理流程图
  9. 程序设计与算法----递归之n皇后问题
  10. 怡丰机器人上市_【利元亨 | 复盘】十家自动停车机器人大PK,你更看好谁?
  11. 服务器bios 虚拟化,hp服务器bios开启虚拟化(hp主板开启虚拟化)
  12. ajax响应速度慢,jQuery Ajax请求的响应速度变化
  13. 怎么将自己的头像p到特定的背景图_怎么使用PS抠图,把扣出来的图片P到另张图上...
  14. Sklearn实现非线性回归
  15. _032_rationalRose_包图的画法
  16. 【填充插件】自定义填充图案制作插件
  17. 如何实现JS主动触发事件
  18. 学生成绩处理(函数版)
  19. 盖茨开始闭关修炼 冥思微软之大未来(引用)
  20. 实战揭露360和QQ医生系统漏洞检测真相!

热门文章

  1. typora 导入word文档的方法
  2. NHK Easy News 翻译 12月19日 第2章
  3. 从基础到进阶,100道测试开发面试题,进大厂涨薪必备
  4. Ubuntu18安装deepin-wine微信、QQ
  5. php csv乱码问题,如何解决php csv乱码问题
  6. 大数据分析经典案例,无缝整合OA、ERP、MES等系统
  7. 系统文件受损,不要轻易重装
  8. 四年级下册计算机应用答案,小学四年级信息技术试题测试题
  9. iPhone高清晰电影视频转换快速教程
  10. Unicode中文转码