python实现常量定义
原创
©著作权归作者所有:来自51CTO博客作者编程汇也的原创作品,请联系作者获取转载授权,否则将追究法律责任
1.为python导入自定义类
2.定义常量并测试
3.报错,达到常量不重复赋值功能
完成代码:
import sys
# _const为保护类
class _const:
class ConstError(TypeError): pass
# 设置_const保护类属性
def __setattr__(self, k, v):
# 如果键值对字典中对应的键已赋值过,直接接错,不能赋值,实现常量功能
if k in self.__dict__:
data = "不能重新给常量赋值 (%s)" % k
raise self.ConstError(data)
# 如果键值对字典中对应的键未赋值,进行赋值
self.__dict__[k] = v
sys.modules[__name__] = _const() # 为python环境添加模块