【问题标题】:Can I define setters in python?我可以在python中定义setter吗?
【发布时间】:2019-04-12 16:40:29
【问题描述】:

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

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

在 python shell 中使用 myClass:

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

我能否定义一个在更改x 的值时自动调用的setter?

【问题讨论】:

标签: python class attributes


【解决方案1】:

你可以使用属性装饰器

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

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

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

查看stack overflow post了解更多信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 2012-06-29
    • 2015-03-11
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    相关资源
    最近更新 更多