我可以用python定义setter吗?

我可以用python定义setter吗?,python,class,attributes,Python,Class,Attributes,我想在python中创建一个类,该类的属性具有setter 例如,假设我们有一个名为myClass的类,它有x属性。我想创建它,以便当有人更改x值时,只保存x的最后两位(x%100) 在python shell中使用myClass: 我是否可以定义一个setter,在更改x的值时自动调用该setter?您可以使用属性装饰器 @property def x(self): return self._x @x.setter def x(self, value): self._x =

我想在python中创建一个类,该类的属性具有setter

例如,假设我们有一个名为
myClass
的类,它有
x
属性。我想创建它,以便当有人更改x值时,只保存x的最后两位
(x%100)

在python shell中使用myClass:


我是否可以定义一个setter,在更改
x
的值时自动调用该setter?

您可以使用属性装饰器

@property
def x(self):
    return self._x

@x.setter
def x(self, value):
    self._x = value % 100
此外,您还必须在init方法中声明并初始化x,以获得更安全的代码


有关更多信息,请参见此

查看
\uuu getattr\uuuuuuuuuu
\uuuuuuuu setattr\uuuuuuuuu
魔术方法可能重复的
@property
def x(self):
    return self._x

@x.setter
def x(self, value):
    self._x = value % 100