我希望能够创建一个类(在 Python 中),该类一旦用 __init__
初始化,不接受新属性,但接受对现有属性的修改。我可以看到几种 hack-ish 方法来做到这一点,例如有一个 __setattr__
方法,例如
def __setattr__(self, attribute, value):
if not attribute in self.__dict__:
print "Cannot set %s" % attribute
else:
self.__dict__[attribute] = value
然后直接在 __init__
中编辑 __dict__
--- ,但我想知道是否有“正确”的方法来做到这一点?
原文由 astrofrog 发布,翻译遵循 CC BY-SA 4.0 许可协议
我不会直接使用
__dict__
,但是你可以添加一个函数来明确地“冻结”一个实例: