我可以在python中定义设置器吗?

时间:2018-11-09 05:07:10

标签: python class attributes

我想在python中创建一个具有其属性设置器的类。

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

在python shell中使用myClass:

>>> obj = myClass()
>>> obj.x = 352562
>>> obj.x
62

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

1 个答案:

答案 0 :(得分:0)

您可以使用属性装饰器

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

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

此外,您还必须在 init 方法中声明和初始化_x以获得更安全的代码

有关更多信息,请参见此stack overflow post