Python属性在构造函数中设置值时不使用setter
我有一个带有构造函数和几个属性的类Python属性在构造函数中设置值时不使用setter,python,properties,constructor,Python,Properties,Constructor,我有一个带有构造函数和几个属性的类 class Foo(object): def __init__(self, value1): self._value1 = value1 @property def value1(self): return self._value1 @property.setter def value1(self, value): assert value == 1
class Foo(object):
def __init__(self, value1):
self._value1 = value1
@property
def value1(self):
return self._value1
@property.setter
def value1(self, value):
assert value == 1
self._value1 = value
现在,当我在创建对象时设置value1时,并没有使用setter。我注意到这一点是因为在输入错误的值时没有调用断言
如何使构造函数中设置的值使用setter?通过设置基础变量而不是使用属性,显式绕过setter。删除下划线
def __init__(self, value1):
self.value1 = value1
解决方案您没有使用
\uuuu init\uuuu
中的属性。那么,不,Python怎么知道对value1
使用setter呢?参数真的需要使用dunders吗?