虽然在python中定义常量看起来有点违背python的动态性,但是在teamwork当中,rule is rule,常量作为一种合作的契约,还是很有必要的。
回到常量本身,常量应该是一种明确并且一旦初始化便不可更改的值,或作为协议的实现,或作为契约的存在。
网络上关于实现python的const,基本使用python的__getattr__,__setattr__来实现的,今天给大家介绍一种更简便实现常量的方法,它就是__slots__。
#const.py
import sys
class Const(object):
__slots__ = (\'STATUS_OK\', \'STATUS_TIMOUT\', \'STATUS_ERROR\')
STATUS_OK = 1000
STATUS_TIMOUT = 1001
STATUS_ERROR = 1005
sys.modules[__name__] = Const()
接下来就可以看看运行效果了!
>>> import const
>>> print const.STATUS_OK
1000
>>> const.STATUS_OK=1
Traceback (most recent call last):
File \"\", line 1, in
AttributeError: \'Const\' object attribute \'STATUS_OK\' is read-only
>>>
ps:注册这么久,只为sf做出这么一点微小的工作,很惭愧。