常量在編寫程序的時候,一旦設定就不能再進行變更,常量一種約定俗成的方式,全部字母大寫並用下劃線分隔單詞的方式(如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'