窝窝头传奇 发表于 2021-6-24 09:30:44

关于描述符类

想问一下这个 例子中 设置 c.x='X-man'   然后 self.fset(instance)是这么传到set_x中的或者说为什么self._x和c.x等值

nahongyan1997 发表于 2021-6-24 10:08:58

c.x 指的是 "x = Myproperty(getX,setX,delX)"中的 x
打印c.x 时系统自动执行 Myproperty 中的 __get__ 方法 ,
__get__ 方法返回了 C 类实例的 getX() 方法,
C 类实例的 getX() 方法返回了 self._x 的值。

所以 c.x == self._x.
可以认为是一种连带反应,
希望我说明白了。

窝窝头传奇 发表于 2021-6-24 10:15:08

nahongyan1997 发表于 2021-6-24 10:08
c.x 指的是 "x = Myproperty(getX,setX,delX)"中的 x
打印c.x 时系统自动执行 Myproperty 中的 __get__ 方 ...

他不是会先设置set吗

窝窝头传奇 发表于 2021-6-24 10:18:40

nahongyan1997 发表于 2021-6-24 10:08
c.x 指的是 "x = Myproperty(getX,setX,delX)"中的 x
打印c.x 时系统自动执行 Myproperty 中的 __get__ 方 ...

就是__get__的值返回到 getx 的self.x

nahongyan1997 发表于 2021-6-24 10:27:08

窝窝头传奇 发表于 2021-6-24 10:18
就是__get__的值返回到 getx 的self.x

有个默认的 self._x=None吗不是,
就不用先set了


给个最佳啊{:10_254:}
页: [1]
查看完整版本: 关于描述符类