如何检查用户的属性是否已由用户设置?目前,我有一个类如何检查属性是否具有在__init__中定义的默认值
class foo:
def __init__(self):
self.bar = 'baz'
后来我想检查,如果用户设定的bar
值与否,即具有类似
my_foo = foo()
my_foo.bar = 'mybaz'
,所以我想知道如果第二上面的行已经被调用或不被调用(如果没有的话,会发出警告)。我有两个解决方案,但我不喜欢它们中的:
检查
my_foo.bar
等于默认值。但它可能是用户设置my_foo.bar
为相同的值,然后我不想发出警告。请勿在
__init__
中设置默认值,但仅在使用时才有效。然后可以使用getattr()
进行检查,并使用setattr()
进行设置。
我敢肯定,有一种优雅的pythonic方式来做到这一点,我没有想到。
会阻止直接分配给这些属性就够了吗?即分配完成后立即抛出异常?请解释你想要检查的方式 – Pynchia