鱼C论坛

 找回密码
 立即注册
查看: 2757|回复: 6

[已解决]魔方,描述符课后题

[复制链接]
发表于 2021-8-15 17:32:33 | 显示全部楼层 |阅读模式

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

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

x
访问实例层次上的描述符 x,只会返回描述符本身。为了让描述符能够正常工作,它们必须定义在类的层次上。如果你不这么做,那么 Python 无法自动为你调用 __get__ 和 __set__ 方法

这个没看懂,大佬帮忙解释一下,咋有点😵那
最佳答案
2021-8-16 07:00:18

为了让描述符能够正常工作,它们必须定义在类的层次上


就是描述符只能定义在类,甲鱼哥图中定义在类方法中,且赋值给了一个实例属性,那么 Python 就无法自动帮你调用描述符的 __get__ 和 __set__

你需要将 self.x = MyDes(3) 这个移到 类中,self 去掉,即在类所属范围 进行描述符的调用,即改成 x = MyDes(3) 且在 类中类方法外,而不是在类方法内
屏幕截图 2021-08-15 172904.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-8-16 07:00:18 | 显示全部楼层    本楼为最佳答案   

为了让描述符能够正常工作,它们必须定义在类的层次上


就是描述符只能定义在类,甲鱼哥图中定义在类方法中,且赋值给了一个实例属性,那么 Python 就无法自动帮你调用描述符的 __get__ 和 __set__

你需要将 self.x = MyDes(3) 这个移到 类中,self 去掉,即在类所属范围 进行描述符的调用,即改成 x = MyDes(3) 且在 类中类方法外,而不是在类方法内
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-16 09:38:24 | 显示全部楼层
Twilight6 发表于 2021-8-16 07:00
就是描述符只能定义在类,甲鱼哥图中定义在类方法中,且赋值给了一个实例属性,那么 Python 就无法自 ...

听的不太明白,可以直接说一下怎样才算正确的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-16 09:40:37 | 显示全部楼层
Twilight6 发表于 2021-8-16 07:00
就是描述符只能定义在类,甲鱼哥图中定义在类方法中,且赋值给了一个实例属性,那么 Python 就无法自 ...

是不是只要去掉self就可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-16 16:45:40 | 显示全部楼层
寄安 发表于 2021-8-16 09:40
是不是只要去掉self就可以了


是,并且把这个赋值操作方在类方法外
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-16 17:30:13 | 显示全部楼层
Twilight6 发表于 2021-8-16 16:45
是,并且把这个赋值操作方在类方法外

为什么?能解释下吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-16 21:47:32 | 显示全部楼层
OK i
懂了,在类层次上
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-20 23:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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