【发布时间】:2021-11-07 11:14:00
【问题描述】:
我有以下课程。如果用户没有为此提供值,我想保留 _my_var = None。他们可以使用 setter 来设置它,我在其中强制执行一些验证
class A:
_my_var = None
@property
def my_var(self):
return self._my_var
@property.setter
def my_var(self, value)
# Some validation
return._my_var = value
我在下面的代码中创建一个对象
x = A()
当我查看 x 具有的属性时
_my_var: None
my_var: None
当我设置 x._myvar = 10 时,my_var 和 _my_var 属性都设置为 10。我对此感到困惑。 _my_var 是一个字段,而 my_var 是一个函数吗?如何在强制setter设置的同时只保留_my_var作为属性?
【问题讨论】:
-
你能澄清你在问什么吗?实例 x 没有 有一个属性 my_var - 它有一个属性。你怎么看属性?
-
我使用 dir(x) 检查
标签: python oop properties python-decorators python-class