WebLinuxStudy

常量在编写程序的时候,一旦设定就不能再进行变动,常量一种约定俗成的方式,所有字母大写并用下划线分隔单词的方式(如MAX_VALUE, OUT_TIME等),但是python没有提供设置常量用法,需要自己自定义类实现常量功能。

自定义类实现常量功能

这种办法就是解决简单用全大写和下划线定义固定变量无法解决篡改的问题。
下面是一个例子:
创建一个 constant.py 文件,在其中创建const类

class Const():
  class ConstError(TypeError):
    pass

  class ConstCaseError(ConstError):
    pass

  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 Const

const = Const()

const.TEST = \'HH\'
print(const.TEST)
# 尝试修改变量
const.TEST = \'JJ\'
# 尝试常量名称为小写字母
const.test = \'HH\'

 

posted on 2019-11-12 10:41  WebLinuxStudy  阅读(7310)  评论(0编辑  收藏  举报

分类:

技术点:

相关文章: