Effective Python学习笔记

第一章 培养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表达式更好懂

第6条:把数据结构直接拆分到多个变量中,不要专门通过下标访问



 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值