写python代码的建议 Supporting tagline
Overview
本文汇总了写Python代码的建议。
阅读建议
- The Zen of Python
- 《编写高质量代码:改善Python程序的91个建议》
- 官方手册中的
Language Reference
和Library Reference
- 深入阅读业界公认的比较Pythonic的代码项目:
- Flask
- gevent
- requests
Code建议
- 用
str.format
进行字符串格式化,示例:,-
关键字参数映射
In [1]: 'Hello {name}'.foramt(name = 'Tom') Out[1]: 'Hello Tom'
-
通过位置映射
In [1]: '{0},{1}'.format('Tom',18) Out[1]: 'Tom,18' In [2]: '{1},{0},{1}'.format('Tom',18) Out[2]: '18,Tom,18' In [3]: '{},{}'.format('Tom',18) Out[3]: 'Tom,18'
-
通过对象属性映射
# self.name == Tom, self.age == 18 In [1]: '{self.name},{self.age}'.format(self=self) Out[1]: 'Tom,18'
-
通过下标映射
# p=['Tom',18] In [1]: '{0[0]},{0[1]}'.format(p) Out[1]: 'Tom,18'
-
填充与对齐(格式限定)
填充常跟对齐一起使用 ^、<、>分别是居中、左对齐、右对齐,后面带宽度 :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
In [1]: '{:>8}'.format('123') Out[1]: ' 123' In [2]: '{:0>8}'.format('123') Out[2]: '00000123'
-
精度与类型(格式限定)
精度常跟类型f一起使用 其他类型有b、d、o、x,分别是二进制、十进制、八进制、十六进制
In [1]: '{:.2f}'.format(3.1415) Out[1]: '3.14' In [2]: '{:d}'.format(123) Out[2]: '123'
-
-
用in操作符判读某元素在某容器中
不用如dict.has_key()形式
- 不要使用type进行类型检查,推荐用isinstance()
- 用==判断对象值是否相等(is判断是否是一个对象)
- 使用
with
自动关闭资源 - 不要在
finally
中使用break
和return
语句 - 深入理解None,正确判断对象是否为空
- None是一个空值对象,遵循单例模式,所有赋值为None的对象都相等,None与其他非None对象比较均不等
-
例,判断list为空的正确方式:
if list1: Do something else: Do some other thing
- 连接字符串应优先考虑join,而不是+
- …
blog comments powered by Disqus