本篇我们学习如何在 Python 中定义常量。
有时候,我们需要在变量中存储数据,同时又希望这些变量的值在程序运行过程中不要发生改变。
如果想要在其他编程语言中实现这个功能,我们可以使用常量(constant)。常量和变量类似,但是它们的值在程序执行过程中不会改变。
不过,Python 不支持常量。
为了解决这个问题,我们可以使用全部大写的变量名表示某个变量需要当作一个常量。例如:
FILE_SIZE_LIMIT = 2000
当我们看到这种变量时,不应该修改它们的值。这是一种约定俗成的常量,而不是语法规则中的常量。
当我们学习了 Python 面向对象编程之后,可以采用以下方法定义常量,目前仅作为参考:
# 创建文件 const.py import sys class _const: class ConstError(TypeError): pass def __setattr__(self,name,value): if self.__dict__.has_key(name): raise self.ConstError, "Can't rebind const(%s)"%name self.__dict__[name]=value def __delattr__(self, name): if name in self.__dict__: raise self.ConstError("can not unbind const (%s)" %name) raise NameError(name) sys.modules[__name__]=_const()
# 导入 const 模块 import const # 初始化一个常量 const.MAGIC = 23 # 再次赋值时返回错误 const.MAGIC = 88 # const.ConstError