python类设置程序限制

2024-04-19 04:40:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类和一个属性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

Tags: 实例列表属性objectemail错误username数组
0条回答
网友
1楼 · 发布于 2024-04-19 04:40:22

你也可能对__setattr__感兴趣。这将覆盖对象上的属性设置。插槽setattr没有的其他并发症。你知道吗

网友
2楼 · 发布于 2024-04-19 04:40:22

首先,如果你真的需要这样做,重新考虑一下。通常是过度设计。如果你决定你真的需要,看看^{}——如果你把你的writable_attributes重命名为__slots__,尝试创建更多的将是一个错误。如果您需要避免一些现有的文件在设置一次后就被写入,那么您可以使用属性来实现这一点。你知道吗

网友
3楼 · 发布于 2024-04-19 04:40:22

听起来你真正要找的是^{}。你知道吗

相关问题 更多 >