本文主要记录 Python 中一些常用技巧,所描述的是告诉你怎么写才是更好? 如果你并不熟悉Python语法,希望你能在下面代码片段中看到Python的简单、优雅; 如果你象我这样,对 Python 有兴趣或并正在学习,我相信下面的技巧并不会让你失望; 如果你已经是一名 Pythoner ,那么很乐于你分享你的经验和技巧。
Python 禅道:
如果您使用的一种编程语言是以小品喜剧艺术团命名的,你最好有幽默感。
美丽优于丑陋。
明确优于含蓄。
简单比复杂好。
平倘优于嵌套。
稀疏比密集更好。
特殊情况不能特殊到打破规则。
错误不应该默默传递。
…
Python 代码风格指南 值得阅读:
http://www.python.org/dev/peps/pep-0008/
空格(行)使用 (1)
◆ 使用 4 个空格缩进。
◆ 不要使用制表符。
◆ 不要将制表符和空格混合使用。
◆ IDEL和Emacs的Python的都支持 spaces模式。
◆ 每个函数之间应该有一个空行。
◆ 每一个 Class 之间应该有两个空行。
空格(行)使用 (2)
◆ 在使用 字典(dict), 列表(list), 元组(tuple), 参数(argument)列表时, 应在 “,” 前添加一个空格, 并且使用字典(dict)时,在 “:” 号后添加空格,而不是在前面添加。
◆ 在括号之前或参数之前不添加空格。
◆ 在文档注释中前后应该没有空格。
Python代码
def make_squares(key, value=0):
"""Return a dictionary and a list..."""
d = {key: value}
l = [key, value]
return d, l
命名
◆ joined_lower 可以是 函数名, 方法名, 属性名
◆ joined_lower or ALL_CAPS 是常量
◆ StudlyCaps 类名
◆ camelCase 只有在预先制定好的命名规范使用
◆ 属性: interface, _internal, __private
◆ 但尽量避免__private形式。下面两个链接解释了 为什么python中没有 private声明?
较长代码行
保持一行代码在 80 个字符长度。
在括号内使用隐含的行延续:
Python代码
def __init__(self, first, second, third,
fourth, fifth, sixth):
output = (first + second + third
+ fourth + fifth + sixth)
或者在需要换行的位置使用 \ 来延续行:
Python代码
VeryLong.left_hand_side \
= even_longer.right_hand_side()
另外,使用反斜杠是有风险的,如果你添加一个空格在反斜杠后面,它就出错了。此外,它使代码难看。
较长字符串
将相邻的字符串进行连接的做法:
Python代码
>>> print 'o' 'n' "e"
one
虽然字符之间的空格不是必需的,但是这样有助于可读性。
Python代码
>>> print 't' r'\/\/' """o"""
t\/\/o
用一个 “r“ 开头的字符串是一个“raw“的字符串(类似java中的转义符)。上面的反斜杠就会当成普通字符串处理。他们对正则表达式和Windows文件系统路径非常有用。
注意:使用字符串变量名无法通过以上方式进行连接。
Python代码
>>> a = 'three'
>>> b = 'four'
>>> a b
File "<stdin>", line 1
a b
^
SyntaxError: invalid syntax
这是因为自动连接是由Python解析器/编译器来处理的,因为其无法在编译时对变量值进行"翻译",所以就这种必须在运行时使用“+“运算符来连接变量。