※ 引述《ResolaQQ (ResolaQQ)》之铭言:
: constants
: all module globals are considered constants. Their binding must not be
: changed at run-time. Moreover, global (i.e. prebuilt) lists and
: dictionaries are supposed to be immutable: modifying e.g. a global list
: will give inconsistent results. However, global instances don't have this
: restriction, so if you need mutable global state, store it in the
: attributes of some prebuilt singleton instance.
你下面的例子和这段文字毫不冲突, 反而是它推荐的做法
我就直接翻成中文, 你自己感受一下, 应该不需要太多解释
所有 module 中的全域变量应被视为常数。它们的键结不应于执行期被改变。
除此之外, 全域(亦即预先建立的)list 与 dictionary 实例应不可修改:
举例而言, 修改一个全域 list 会产生不一致的结果。然而, 全域物件实例并
无此限制, 所以若你需要可被修改的全域状态, 应将其存至某个预先建立
singleton 实例的 attribute。