※ [本文转录自 Python 看板 #1HZwSQnx ]
作者: sandwichC (没回应=挂站) 看板: Python
标题: [翻译] Google 建议的 Python 风格指南 18, 19
时间: Sun May 12 22:28:39 2013
[翻译] Google 建议的 Python 风格指南 18, 19
原文网址:http://google-styleguide.googlecode.com/svn/trunk/pyguide.html
* 执行绪 (thread)
别相信内建型态的原子性 (atomicity)。
虽然 Python 的内建资料型态 (如:dictionary) 的某些操作看似具备原子性 (即
:一个动作不会操作到一半就被其他执行绪打断),但某些状况下原子性不被保证
(如:当 __hash__ 或 __eq__ 方法被实现时)。赋值的动作也不保证原子性。
不同的执行绪间优先使用 Queue 模组中的 Queue 来沟通 (编案:python 3 中为
queue)。另一个选择是 threading 模组中的 primitive lock。为了能使用多执行
暑,学习使用 condition variable,并用它们来取代低阶的 lock。
* 威力强大的功能
(编案:这篇里的某些术语没给例子,我不很确定它们指的与我理解的是否一致。
虽然这些术语不是本篇的重点,但若有人有更好的解释欢迎指教。)
避免使用它们
释义:
Python 是一个很有弹性的语言,并提供许多花俏的功能,如:metaclass, 存取
bytecode, on-the-fly compilation (编案:指的是动态编译吗?), 动态继承,
重新定义物件父类别, import hacks (编案:指 importlib 吗?), 反射 (指
introspection?), 修改系统内部等。
好处:
这些威力强大的特性能让程式码更简洁。
缺点:
这些很酷的功能非常吸引人,但并非必要。它们使用了一些较少被使用的底层功
能,因此程式较难被阅读、理解、甚至除错。对原作者而言,一开始可能不觉得
不对劲,但当需要再次阅读程式码时,会发现较长但较直观的程式码反而容易理
解。
决策:
避免使用这些功能。