《Python Enhancement Proposal #8》要点 学习摘录
《Python Enhancement Proposal #8》 (8号python增强提案)又叫PEP8,他针对的python代码格式而编订的风格指南。
空白
- 使用space来表示缩进,而不要用tab
- 和语法相关的每一层缩进用4个空格来表示
- 每行的字符数不应超过79
- 文件中函数与类之间应该用两个空行隔开
- 在同一个类中,各方法之间应用一个空行隔开
- 在使用下表来获取列表元素、调用函数或给关键字参数赋值的时候,不要在两旁添加空格
- 为变量赋值的时候,赋值符号的左侧和右侧应该各自写上一个空格,而且只要一个就好
命名
- 函数、变量及属性应该用小写字母来拼写,各单词之间以下划线相连
- 类与异常,应该以每个单词首字母均大写的格式来命名
- 类中的实例方法,应该把首个参数命名为self,以表示该对象的自身
- 类方法的首个参数,应该命名为cls,以表示该类自身
表达式和语句
- 采用内联式的否定词,而不要把否定词放在整个表达式的前面,例如,应该写if a is not b 而不是if not a is b
- 不要通过检测长度的办法(如 if len(somelist) == 0)来判断somelist是否为空值,而是应该采用 if not somelist 这种写法来判断,他会假定:空值将自动评估为False
- 不要编写单行的if语句,for循环,while循环及except复合语句,而是应该把这些语句分成多行来书写,以示清晰
- import语句应在总放在文件开头
- 文件中的哪些import语句应该按照顺序划分为三个部分,分别表示标准库模块,第三方模块以及自用模块
要点
- 当编写Python代码时,总应该遵循PEP8风格指南
- 与广大Python开发者采用同一套代码风格,可以使项目更利于多人协作
- 采用一直的风格来编写代码,可以领后续的修改工作变得更为容易
以上是摘自PEP8的部分,有兴趣可以查看http://www.python.org/dev/peps/pep-0008
《Python Enhancement Proposal #8》要点 学习摘录的更多相关文章
- 高质量JavaScript代码书写基本要点学习
高质量JavaScript代码书写基本要点学习 可维护的代码意味着: •可读的 •一致的 •可预测的 •看上去就像是同一个人写的 •已记录 最小全局变量(Minimizing Globals) ...
- 编写高质量代码改善python程序91个建议学习01
编写高质量代码改善python程序91个建议学习 第一章 建议1:理解pythonic的相关概念 狭隘的理解:它是高级动态的脚本编程语言,拥有很多强大的库,是解释从上往下执行的 特点: 美胜丑,显胜隐 ...
- Python自动化培训第一周学习总结
Python自动化培训第一周学习结束,看视频复习,把作业完成了. 总体来说,开卷有益. 首先,工具真是好东西,能够极大提升效率,也是人区别于动物所在.想起前任大领导对工具的不屑,本质也是对效率的不屑, ...
- python实用库:PrettyTable 学习
python实用库:PrettyTable 学习 PrettyTable说明 PrettyTable 是python中的一个第三方库,可用来生成美观的ASCII格式的表格,十分实用. 以下为官方介绍: ...
- Python 日期时间处理模块学习笔记
来自:标点符的<Python 日期时间处理模块学习笔记> Python的时间处理模块在日常的使用中用的不是非常的多,但是使用的时候基本上都是要查资料,还是有些麻烦的,梳理下,便于以后方便的 ...
- 《Think Python》第17章学习笔记
目录 <Think Python>第17章学习笔记 17.1 面向对象的特性(Object-oriented features) 17.2 打印对象(Printing objects) 1 ...
- 《Think Python》第16章学习笔记
目录 <Think Python>第16章学习笔记 16.1 Time 16.2 纯函数(Pure functions) 16.3 修改器(Modifiers) 16.4 原型 vs. 方 ...
- 《Think Python》第15章学习笔记
目录 <Think Python>第15章学习笔记 15.1 程序员定义的类型(Programmer-defined types) 15.2 属性(Attributes) 15.3 矩形( ...
- 马哥教育python网络班19期 学习目标
马哥教育python网络班19期 学习目标: (1)按群里的学习进度表,来自行学习,学完时间6个月. (2)学完后,薪资能达到20K+每月.
随机推荐
- Yuchuan_Linux_C 编程之四动态库(共享库)制作
一.整体大纲 二.共享库的制作 1. 命名规则: lib + 名字 + .so 2. 制作步骤: 1) 生成与位置无关的代码 (生成与位置无关的.o) 2) 将.o打包成共享库(动态库) 3. ...
- java线程间的协作
本次内容主要讲等待/通知机制以及用等待/通知机制手写一个数据库连接池. 1.为什么线程之间需要协作 线程之间相互配合,完成某项工作,比如:一个线程修改了一个对象的值,而另一个线程感知到了变化,然后进行 ...
- JS如何进行对象的深克隆(深拷贝)?
JS中,一般的赋值传递的都是对象/数组的引用,并没有真正的深拷贝一个对象,如何进行对象的深拷贝呢? var a = {name : 'miay'}; var b = a; b.name = 'Jone ...
- 微信小程序之登录连接django,以及用户的信息授权认证
小结: 1 如何自定义组件 - 组件和页面一样,也是由四个文件组成,所以我们自定义组件的时候,模拟pages文件夹,把所有的所有的组件都放在一个文件夹中,每个组件又由一个文件夹包裹,方便管理,在对应目 ...
- 使用jquery实现动态时钟
先导入jquery-1.7.2.min.js或其他版本文件 js部分 <script> $(function () { showTime(); //文档加载后.就开始显示时间 var se ...
- Fabric 源码学习:如何实现批量管理远程服务器?
前不久,我写了一篇<Fabric教程>,简单来说,它是一个用 Python 开发的轻量级的远程系统管理工具,在远程登录服务器.执行 Shell 命令.批量管理服务器.远程部署等场景中,十分 ...
- ES6中的Promise使用总结
One.什么是Promise? Promise是异步编程的解决方案,而它本身也就是一个构造函数,比传统的异步解决[回调函数]和[事件]更合理,更强大. Two.Promise有何作用? 作用:解决回调 ...
- 面向对象第四单元(UML)及期末总结
前言 统一建模语言(英语:Unified Modeling Language,缩写 UML),是软件架构设计建模和规约的语言. 在UML系统开发中有三个主要的模型: 功能模型:从用户的角度展示系统的功 ...
- swagger 报 i.s.m.parameters.AbstractSerializableParameter - Illegal DefaultValue null for parameter type integer java.lang.NumberFormatException: For input string
解决 方法 添加这两个依赖....别问我有啥子用....我也不知道..能解决问题 <dependency> <groupId>io.swagger</groupId> ...
- 6个出色的Kubernetes发行版,哪款最适合你?
作者简介 Christopher Tozzi,自2008年来以自由职业者的身份对Linux.虚拟化.容器.数据存储及其相关主题进行报道. 本文来自Rancher Labs 时至今日,通过Kuberne ...