※ [本文转录自 Python 看板 #1HYVFfnn ]
作者: ck574b027 (荒围!定厝!贼!妹!) 看板: Python
标题: [翻译] Google 建议的 Python 风格指南 15
时间: Wed May 8 14:42:45 2013
原文网址:http://google-styleguide.googlecode.com/svn/trunk/pyguide.html
不建议使用的python语法
呼叫string内建的方法而不是module string的方法。
# 官方文件也是如此推荐的。
words = foo.split(':')
words = string.split(foo, ':')
使用呼叫函数的新语法而不是内建的apply。
# 这已经是版本2.3时代的事了。
fn(*args, **kwargs)
apply(fn, args, kwargs)
'''
*args表示可以传入不定长度的参数,如
def fn(*args):
print args
fn(1,2,3) # print (1, 2, 3)
a = [1,2,3]
fn(*a) # 输出同上
**kwargs表示传入关键字参数,是个字典(dictionary),如
def fn(**kwargs):
print kwargs
fn(a=3,b=5) # print {'a': 3, 'b': 5}
'''
当filter和map的参数只是个单行lambda的时候,用list comprehensions取代。
[x[1] for x in my_list if x[2] == 5]
map(lambda x: x[1], filter(lambda x: x[2] == 5, my_list))
map(math.sqrt, data) # Ok. 因为不需要lambda。
用for取代reduce。
(这个没有范例,大概是reduce很容易改写。
我的看法是没有需要平行运算的话就少用reduce。)
释义:
现在的版本提供大家普遍认为比较好看的语法。
结论:
我们不采用不支援这些特性的老版本,所以没理由写老语法。