Mat*_*aly 5 python getter setter
class My_Class:
def __init__(self):
self._x = 0
@property
def x(self):
return self._x
@x.setter
def x(self, x):
self._x = x
Run Code Online (Sandbox Code Playgroud)
如果我从上面的代码中删除以下 getter:
@property
def x(self):
return self._x
Run Code Online (Sandbox Code Playgroud)
代码停止工作。如何在没有 getter 的情况下创建 setter?
该property函数不必用作装饰器:装饰器可以用作函数:
class My_Class:
def _set_x(self, value):
self._x = value
x = property(fset=_set_x) # now value has only a setter
del _set_x # optional: delete the unneeded setter function
instance = My_Class()
instance.x= 8 # the setter works
print(instance._x) # the "private" value
print(instance.x) # raises: AttributeError: unreadable attribute
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4703 次 |
| 最近记录: |