读《编写高质量代码改善python的91个建议》笔记 建议7:将常量集中到一个文件
常量需要满足两个条件:
1.不允许修改
2.应该符合命令规范
const.py
# -*- coding: utf-8 -*-
"""
Created on Wed Aug 20 18:04:20 2014
@author: HP
"""
class _const:
class ConstError(TypeError): pass
class ConstCaseError(ConstError): pass
def __setattr__(self,name ,value):
if self.__dict__.has_key(name):
raise self.ConstError,"Cannot change const.%s"%name
if not name.isupper():
raise self.ConstCaseError,\
'const name "%s" is not all uppercase '%name
self.__dict__[name] = value
import sys
sys.modules[__name__] = _const()
constant.py
# -*- coding: utf-8 -*-
"""
Created on Wed Aug 20 18:18:05 2014
@author: HP
"""
import const
const.COMPANY = 'IBM'
const.MY_CONSTANT = 1
const.MY_SECOND_CONSTANT = "HELLO"
test_const.py
# -*- coding: utf-8 -*-
"""
Created on Wed Aug 20 18:04:50 2014
@author: HP
"""
from constant import const
print const.COMPANY
print const.MY_CONSTANT
print const.MY_SECOND_CONSTANT