常量在编写程序的时候,一旦设定就不能再进行变更,常量一种约定俗成的方式,全部字母大写并用下划线分隔单词的方式(如MAX_VALUE, OUT_TIME等),可是python没有提供设置常量用法,须要本身自定义类实现常量功能。python
自定义类实现常量功能it
这种办法就是解决简单用全大写和下划线定义固定变量没法解决篡改的问题。
下面是一个例子:
建立一个 constant.py 文件,在其中建立const类class
class Const():
class ConstError(TypeError): passtest
class ConstCaseError(ConstError): passimport
def __setattr__(self, key, value):
if key in self.__dict__.keys():
# 存在性验证
raise self.ConstError("Can't change a const variable: '%s'" % key)变量
if not key.isupper():
# 语法规范验证
raise self.ConstCaseError("Const variable must be combined with upper letters:'%s'" % key)语法
self.__dict__[key] = value程序
如何使用自定义常量类
from constant import Constim
const = Const()dict
const.TEST = 'HH'print(const.TEST)# 尝试修改变量const.TEST = 'JJ'# 尝试常量名称为小写字母const.test = 'HH'