阻止在__init__之外创建新的属性。
- 论坛
- 阻止在__init__之外创建新的属性。
14 浏览
阻止在__init__之外创建新的属性。
我想能够创建一个类(在Python中),一旦使用__init__
进行初始化,就不接受新的属性,但允许修改现有属性。有几种我可以看到的hack的方法来做到这一点,例如有一个__setattr__
方法,如下所示:
def __setattr__(self, attribute, value): if not attribute in self.__dict__: print "Cannot set %s" % attribute else: self.__dict__[attribute] = value
然后在__init__
内直接编辑__dict__
,但我想知道是否有一种“适当”的方法来做到这一点?