耀西 发表于 2020-8-6 10:14:08

求助装饰器的用法

求助:
class C:
...   def __init__(self):
...         self._x = None
...
...   @property
...   def x(self):
...         """I'm the 'x' property."""
...         return self._x
...
...   @x.setter
...   def x(self, value):
...         self._x = value
...
...   @x.deleter
...   def x(self):
...         del self._x

请问以上代码中的@x.deleter、@x.setter、@property是起什么作用的?

zltzlt 发表于 2020-8-6 10:17:32

@property 是定义一个方法为属性,@x.setter 是定义当 x 被修改时调用的方法,@x.deleter 是定义当 x 被删除时调用的方法

耀西 发表于 2020-8-6 10:29:48

zltzlt 发表于 2020-8-6 10:17
@property 是定义一个方法为属性,@x.setter 是定义当 x 被修改时调用的方法,@x.deleter 是定义当 x 被删 ...

@x.sette中setter是怎么来的?

zltzlt 发表于 2020-8-6 10:32:26

耀西 发表于 2020-8-6 10:29
@x.sette中setter是怎么来的?

setter 就是 x 的一个属性

耀西 发表于 2020-8-6 10:43:44

zltzlt 发表于 2020-8-6 10:32
setter 就是 x 的一个属性

这个setter 是可以自己任意定义的吗?

耀西 发表于 2020-8-6 10:45:26

zltzlt 发表于 2020-8-6 10:32
setter 就是 x 的一个属性

还是说setter 是自带的?

zltzlt 发表于 2020-8-6 10:49:37

耀西 发表于 2020-8-6 10:45
还是说setter 是自带的?

x.setter 是自带的
页: [1]
查看完整版本: 求助装饰器的用法