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