If you're willing to use something like const.foo, it's not hard to ensure its value won't be changeable:
-- in const.py:
class Const:
foo = 'Foobar!'
bar = 23
pi = 3.1415926
baz = "Whacka-doo"
def __setattr__(self,name,value):
if Const.__dict__.has_key(name):
raise AttributeError, "cannot change const.%s" % name
Const.__dict__[name] = value
const = Const()
-- anywhere else:
from const import const
# may now use const.foo, const.bar, ..., and also add new
# const.whatever values by assignment, but NOT change
# any existing one
- Alex Martelli
Version : 1.65 Mise à jour : 11/11/00