鱼C论坛

 找回密码
 立即注册
查看: 1626|回复: 14

描述符的使用

[复制链接]
发表于 2020-2-5 18:42:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小甲鱼的这两个类,下边的和上边的有什么关系呢,为什么调用下边的类上边的也被调用了,没有相同的值,也没有使用相同的函数啊
QQ截图20200205184052.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-5 18:44:08 | 显示全部楼层
  1. x = MyProperty(getX, setX, delX)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 11:30:30 | 显示全部楼层

还是不知道这个是怎么执行的,您能说说执行的顺序吗,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 11:33:56 | 显示全部楼层

是这个x = MyProperty(getX,setX,delX)在被调用的时候,class C和class MyProperty同时执行吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 11:53:50 | 显示全部楼层

我觉得上边的class MyProperty和下边的class C所得到的效果是一样的啊,那么这里的两个类为什么同时存在呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-6 12:12:22 | 显示全部楼层
1005663861 发表于 2020-2-6 11:33
是这个x = MyProperty(getX,setX,delX)在被调用的时候,class C和class MyProperty同时执行吗

先执行 C,遇到 x = MyProperty(getX,setX,delX) 这一句执行 MyProperty。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 14:18:25 | 显示全部楼层
zltzlt 发表于 2020-2-6 12:12
先执行 C,遇到 x = MyProperty(getX,setX,delX) 这一句执行 MyProperty。

x = MyProperty(getX,setX,delX) 里面的参数是getX,setX,delX,对应的也不是MyProperty的参数,那参数是怎样定义的,而 x = MyProperty(getX,setX,delX)里面的参数是class C中的,到底是同时执行还是怎么回事
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-6 14:22:08 | 显示全部楼层
1005663861 发表于 2020-2-6 14:18
x = MyProperty(getX,setX,delX) 里面的参数是getX,setX,delX,对应的也不是MyProperty的参数,那参数是 ...

不可能会同时执行,一定是停下一个去执行另一个。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 15:11:37 | 显示全部楼层
zltzlt 发表于 2020-2-6 14:22
不可能会同时执行,一定是停下一个去执行另一个。

那是先执行myproperty吧,如果是这样那么c类怎么执行,根本没有可以触发的条件啊,而且return self.fget(instance)的执行目的我有点模糊,在__set__这个方法中,函数只执行了self.fset(instance,value)
并没有return进行返回,那不是就直接返回none了吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 15:23:46 | 显示全部楼层
本帖最后由 1005663861 于 2020-2-6 15:26 编辑
zltzlt 发表于 2020-2-6 14:22
不可能会同时执行,一定是停下一个去执行另一个。


这个class C中的所有def我都觉得有用,就是myproperty类中的函数,我觉得有没有都可以啊

而且myproperty中的fset fget fdel给他们赋值我觉得一点用都没有,这些又和下边的getX setX delX一点关系也没有,真不知道是怎么才能让这两个函数有关系
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-6 15:26:13 | 显示全部楼层
1005663861 发表于 2020-2-6 15:23
这个class C中的所有def我都觉得有用,就是myproperty类中的函数,我觉得有没有都可以啊

你的意思是可以这样?

  1. x = MyProperty()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 15:27:59 | 显示全部楼层
zltzlt 发表于 2020-2-6 15:26
你的意思是可以这样?

就是x = ()里面的值和 myproperty里面的值不是一回事啊 getX和fget怎么可能是相等的呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-6 15:28:42 | 显示全部楼层
1005663861 发表于 2020-2-6 15:27
就是x = ()里面的值和 myproperty里面的值不是一回事啊 getX和fget怎么可能是相等的呢

getX 作为 fget 参数,setX 作为 fset 参数,delX 作为 fdel 参数。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 15:30:55 | 显示全部楼层
zltzlt 发表于 2020-2-6 15:28
getX 作为 fget 参数,setX 作为 fset 参数,delX 作为 fdel 参数。

懂了,那为什么只有__get__下边执行的时候用了return,别的执行的时候都没用用到return
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 15:33:52 | 显示全部楼层
zltzlt 发表于 2020-2-6 15:28
getX 作为 fget 参数,setX 作为 fset 参数,delX 作为 fdel 参数。

我的理解是self.fget(instance)通过各种函数变换后可以理解为  getX(c)是这个意思吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-22 04:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表