新建const.py:
--coding:UTF-8--
Filename: const.py
定義一個常量類實現(xiàn)常量的功能
# 該類定義了一個方法setattr(),和一個異常ConstError, ConstError類繼承
自類TypeError. 通過調(diào)用類自帶的字典dict, 判斷定義的常量是否包含在字典
如果字典中包含此變量,將拋出異常,否則,給新創(chuàng)建的常量賦值漱贱。
最后兩行代碼的作用是把const類注冊到sys.modules這個全局字典中。
class _const:
class ConstError(TypeError):pass
def __setattr__(self, name, value):
if self.__dict__.has_key(name):
raise self.ConstError, "Can't rebind const (%s)" %name
self.__dict__[name]=value
import sys
sys.modules[name] = _const()
新建test.py:
--coding:UTF-8--
import const
const.magic = 23
print const.magic
const.magic = 33
結(jié)果: