当前位置: 首页 > news >正文

pep8 python 编码规范_读懂PEP8,让你的Python代码更加优雅

aea5eceeaca457154609bc24664bf712.png

PEP8

《8 号 Python 增强规范》(Python Enhacement Proposal #8),简称PEP8

通俗的来讲 PEP8 是针对 python 代码格式而编订的风格指南,令代码更加易读易懂。像谷歌这样的大公司是有自己内部的风格规范Google Style,目的就是为了提高开发效率。

据传闻,Google 马桶前面的门上,都贴着 Python 编码规范。小数先生今天就分享一些常用的PEP8编码规范。

缩进

a.每一级缩进使用4个空格。

b.续行应该与其包裹元素对其。

# 推荐 # 与左括号对齐  fo = dict(name='小数先生', age=18,           gender='男',city='hangzhou')           # 用更多的缩进来与其他行区分  def long_function_name(         var_noe, var_two,         var_three, var_four):     print(var_one)

不推荐

# 不推荐fo = dict(name='小数先生', age=18,     gender='男',city='hangzhou')def long_function_name(     var_noe, var_two,     var_three, var_four):     print(var_one)

行的最大长度

a.所有行限制的最大字符串数为79。

b.没有结构化限制的大块文本(文档字符或者注释),每行最大字符数限制在72。

空行

a.顶层函数和类的定义,前后用两个空行隔开。

b.类里的方法定义用一个空行隔开。

imports导入

a.导入通常在分开的行。

# 推荐 import os import sys# 不推荐 import sys, os

b.导入总是位于文件的顶部,在模块注释和文档字符串之后,在模块的全局变量与常量之前。

c.导入应该按照以下顺序分组

  • 标准库导入
  • 相关第三方库导入
  • 本地应用/库特定导入(应该在每一组导入之间加入空行)

d.推荐使用绝对路径导入,如果导入系统没有正确的配置,使用绝对路径会更加可读并且性能更好。

Comments注释

a.代码更改时,优先更新对应的注释。

b.注释应该是完整的句子。

c.如果注释很短,结尾的句号可以省略。

d.在句尾结束的时候应该使用两个空格

Block Comments 块注释

a.块注释通常适用于跟随它们的某些(或全部)代码,并缩进到与代码相同的级别。块注释的每一行开通使用一个 # 和一个空格(除非块注释内部缩进文本)

b.块注释内部的段落通过只有一个 # 的空行分隔

Inline Comments 行内注释

a.有节制地使用行内注释

b.行内注释是与代码语句同行的注释,行内注释和代码至少要有两个空格分隔。

Documentation Strings文档字符串

a.要为所有的公共模块,函数,类已经方法编写文档说明

b.多行文档说明使用的结尾三引号自成一行

# 推荐"""Return a foobangOptional plotz says to frobnicate the bizbaz first."""

命名规范

a.永远不要使用字母'l'(小写的L),'O'(大写的o),或者'I'(大写的i)作为单字符变量名

b.函数名要小写,如果想提高可读性可以用下划线分离

c.类名首字母要大写

相关文章:

  • 关于数据库查询次数的问题
  • python 服务器_我的Python_WEB服务器简单配置
  • 7 安装_python3.7安装教程
  • GMail Drive shell --Windows上的GmailFS
  • qt 自定义控件_Qt编写自定义控件47-面板区域控件
  • 成龙《新警察故事》观后
  • springcloud 消息队列_Apache RocketMQ 消息队列部署与可视化界面安装
  • 字符集问题的初步探讨(六)-----乱码的产生
  • 八进制的正则表达式_shell study18day正则表达式一
  • Skype豪赌VoIP 电话革命蓄势待发--Skype通话质量还不错哦!
  • python传递整形数组_python接口自动化(二十九)get请求传array数组
  • python 进程间通信效率_python之并发编程-进程之间的通信
  • 戴尔:召回440万个笔记本电源适配器---看看你的是否在此之列?
  • python 决策树 字符型_[4] python: 决策树
  • 一点感悟
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Hexo+码云+git快速搭建免费的静态Blog
  • Java多线程(4):使用线程池执行定时任务
  • js对象的深浅拷贝
  • Node项目之评分系统(二)- 数据库设计
  • 规范化安全开发 KOA 手脚架
  • 技术:超级实用的电脑小技巧
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 区块链将重新定义世界
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 我看到的前端
  • Python 之网络式编程
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​​​​​​​​​​​​​​Γ函数
  • # 飞书APP集成平台-数字化落地
  • #{}和${}的区别是什么 -- java面试
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #每日一题合集#牛客JZ23-JZ33
  • (11)MATLAB PCA+SVM 人脸识别
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (6)STL算法之转换
  • (70min)字节暑假实习二面(已挂)
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (九十四)函数和二维数组
  • (四)c52学习之旅-流水LED灯
  • (转)Scala的“=”符号简介
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .cn根服务器被攻击之后
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .Net 应用中使用dot trace进行性能诊断
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本