python 编写高质量代码之将常量集中一个文件

# 建议将常量集中于一个文件 我认为这是一个意思表达错了,正确的是将常量统一管理才对

实现方式

1. 命名风格来,如xx开头代表是常量等,不好的地方是没按规则来就会出莫名的错误。 2. 通过自定义类来实现常量功能。

通过类来实现常量功能

原文示例:

class _const:
    class ConstError(TypeError): pass
    class ConstCaseError(ConstError): pass
        def __setattr__(self, name, value):
            if self.__dict__.has_key(name):
                raise self.ConstError, "Can't 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()
import const
const.MY_CONSTANT = 1
const.MY_SECOND_CONSTANT = 2
const.MY_THIRD_CONSTANT = 'a'
const.MY_FORTH_CONSTANT = 'b'

在这个示例中:作者运用了sys.modules, import 的使用,但我并不认为这种手法好, 我比较喜欢将二分开, _const.py,const.py, 这样的好处是分离相关实现


--- _const.py
class CONST:
      .....
--- const.py
from _const import CONST
MAN = CONST()
MAN.MONEY = 100
WOMAN = CONST()
WOMAN.MONEY = 200

总结: 尽可能集中管理。

Loading Disqus comments...
Table of Contents