Fw: [翻譯] Google 建議的 Python 風格指南 18, 19

作者: sandwichC ( )   2013-05-12 22:28:57
※ [本文轉錄自 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?), 修改系統內部等。
好處:
這些威力強大的特性能讓程式碼更簡潔。
缺點:
這些很酷的功能非常吸引人,但並非必要。它們使用了一些較少被使用的底層功
能,因此程式較難被閱讀、理解、甚至除錯。對原作者而言,一開始可能不覺得
不對勁,但當需要再次閱讀程式碼時,會發現較長但較直觀的程式碼反而容易理
解。
決策:
避免使用這些功能。

Links booklink

Contact Us: admin [ a t ] ucptt.com