MST

星途 面试题库

面试题:Python中如何实现简单的常量定义环境隔离

在Python中,常规情况下并没有像其他语言那样严格意义的常量。请阐述一种能实现常量定义且进行环境隔离的方案,并简单说明其原理与实现步骤。
49.8万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

方案

在Python中,可以通过定义一个类来模拟常量,并且利用模块实现环境隔离。

原理

将常量定义为类的属性,利用类的特性限制属性的修改。模块在Python中本身就提供了一种命名空间的隔离,避免不同模块间常量定义的冲突。

实现步骤

  1. 创建常量模块
# 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 = "常量值"
  1. 使用常量
from constants import const
print(const.CONSTANT_NAME)

这样,在其他模块中导入const,就可以像使用常量一样使用其属性,并且不能修改这些属性的值,实现了常量定义与环境隔离。