面试题答案
一键面试方案
在Python中,可以通过定义一个类来模拟常量,并且利用模块实现环境隔离。
原理
将常量定义为类的属性,利用类的特性限制属性的修改。模块在Python中本身就提供了一种命名空间的隔离,避免不同模块间常量定义的冲突。
实现步骤
- 创建常量模块:
# constants.py
class _Constants:
class ConstError(TypeError):
pass
def __setattr__(self, name, value):
if name in self.__dict__:
raise self.ConstError(f"Can't rebind const ({name})")
self.__dict__[name] = value
const = _Constants()
const.CONSTANT_NAME = "常量值"
- 使用常量:
from constants import const
print(const.CONSTANT_NAME)
这样,在其他模块中导入const
,就可以像使用常量一样使用其属性,并且不能修改这些属性的值,实现了常量定义与环境隔离。