我有一个类和一个属性writable_attributes
,它是一个属性数组,在实例化类时,应该可以设置这些属性:
class User(object):
writable_attributes = ['username','email']
如果另一个属性不在writable_attributes
的列表中,那么如果设置了它,我希望能够引发一个错误。我在浏览一个通用的setter,但我找不到任何适合我的需要。比如:
user = User()
user.foo = 'bar' # This should raise an error since only `username` and `email` can be set
你也可能对
__setattr__
感兴趣。这将覆盖对象上的属性设置。插槽有setattr没有的其他并发症。你知道吗首先,如果你真的需要这样做,重新考虑一下。通常是过度设计。如果你决定你真的需要,看看^{} ——如果你把你的
writable_attributes
重命名为__slots__
,尝试创建更多的将是一个错误。如果您需要避免一些现有的文件在设置一次后就被写入,那么您可以使用属性来实现这一点。你知道吗听起来你真正要找的是^{} 。你知道吗
相关问题 更多 >
编程相关推荐