代码如下:
#encoding=utf-8
print '中国'
#定义常量 可以添加新的属性,但是不能修改删除已有的属性
#核心在于不能删除 不能修改
class _const(object):
class ConstError(TypeError): pass
def __setattr__(self, name, value):
if name in self.__dict__:
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't unbind const(%s)" % name
raise NameError, name
const=_const()
const.magic = 23
# Exception
del const.magic
# Exception
const.magic=24
打印结果如下:
中国
Traceback (most recent call last):
File "F:\workspace\StudyPy\src\basic\study006_002.py", line 23, in <module>
del const.magic
File "F:\workspace\StudyPy\src\basic\study006_002.py", line 15, in __delattr__
raise self.ConstError, "Can't unbind const(%s)" % name
__main__.ConstError: Can't unbind const(magic)