第一章 培养Pythonic思维
第1条:确认自己所用的Python版本
推荐使用python3.x
第2条:遵循PEP 8风格指南
与空白有关的建议
- 用空格(space) 表示缩进, 而不要用制表符(tab) 。
- 和语法相关的每一层缩进都用4个空格表示。
- 每行不超过79个字符。
- 对于占据多行的长表达式来说,除了首行之外的其余各行都应该在通常的缩进级别之上再加4个空格。
- 在同一份文件中,函数与类之间用两个空行隔开。
- 在同一个类中,方法与方法之间用一个空行隔开。
- 使用字典时,键与冒号之间不加空格,写在同一行的冒号和值之间应该加一个空格。
- 给变量赋值时,赋值符号的左边和右边各加一个空格,并且只加一个空格就好。
- 给变量的类型做注解(annotation) 时, 不要把变量名和冒号隔开, 但在类型信息前应该有一个空格。
与命名有关的建议
- 函数、变量及属性用小写字母来拼写, 各单词之间用下划线相连, 例如:lowercase_underscore
- 受保护的实例属性, 用一个下划线开头, 例如:_leading_underscore。
- 私有的实例属性, 用两个下划线开头, 例如:__double_leading_underscore。
- 类(包括异常) 命名时, 每个单词的首字母均大写, 例如:Capitalized Word。
- 模块级别的常量, 所有字母都大写, 各单词之间用下划线相连, 例如:ALL_CAPS。
- 类中的实例方法, 应该把第一个参数命名为self, 用来表示该对象本身。
- 类方法的第一个参数.应该命名为cls, 用来表示这个类本身。
与表达式和语句有关的建议
- 不要通过长度判断容器或序列是否为空,Pyhton会把空值判定为False,非空的值判定为True,因此应该采用if not somelist、if somelist进行判断
与引入有关的建议
- 引入模块时,总是应该使用绝对路径,而不应该根据当前模块路径来使用相对名称,如from bar import foo
第3条:了解bytes与str的区别
第4条:用支持插值的f-string取代C风格的格式字符串与str.format方法
| C风格的格式字符串 | str.format方法 | f-string |
|
缺点: 1、顺序固定、不可变 2、处理值不方便 3、值无法重复使用 4、使用字典太冗余 |
缺点: 1、处理之不方便 2、使用字典太冗余 |
与字母r的用法类似 优点: 1、可以直接在格式说明符里嵌入任意Python表达式 |
第5条:用辅助函数取代复杂的表达式
- Python会将空白字符串、空白list、0值,全部当成False看待,因此可以使用 a = 表达式 or 0,把缺失与空白值这两种情况默认当成0
- 如果你发现表达式越写越复杂,那就应当考虑把它拆分成多个部分,并且把这套逻辑写到辅助函数里面。
- 用 if / else 结构写成的条件表达式,要比用or或and写成的Boolean表达式更好懂
本文指导你掌握Python编程的优雅之道,从版本确认、PEP8规范,到bytes与str区别、f-string的使用,讲解了如何培养Pythonic思维,提升代码可读性和效率。
2234

被折叠的 条评论
为什么被折叠?



