鱼C论坛

 找回密码
 立即注册
查看: 2168|回复: 7

46讲动动手0题

[复制链接]
发表于 2021-2-7 20:04:02 | 显示全部楼层 |阅读模式

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

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

x
  1. class MyDes:
  2.     def __init__(self, initval=None, name=None):
  3.         self.val = initval
  4.         self.name = name

  5.     def __get__(self, instance, owner):
  6.         print("正在获取变量:", self.name)
  7.         return self.val

  8.     def __set__(self, instance, value):
  9.         print("正在修改变量:", self.name)
  10.         self.val = value

  11.     def __delete__(self, instance):
  12.         print("正在删除变量:", self.name)
  13.         print("噢~这个变量没法删除~")

  14. class Test:
  15.         x = MyDes(10, 'x')
复制代码




为什么运行时候 y = test.x,只输出“正在获取变量: x”,没有return值?
QQ截图20210207200324.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-2-7 20:41:29 | 显示全部楼层
y的值不就是return给的吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-7 21:06:13 | 显示全部楼层
  1. y = test.x
复制代码

只是一个表达式,这个表达式没有值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-9 11:30:37 | 显示全部楼层
°蓝鲤歌蓝 发表于 2021-2-7 21:06
只是一个表达式,这个表达式没有值

不就是调用“__get__”的函数,输出才会有“正在获取变量x”,这个都调用了,为什么没有输出返回值的“self.val”
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-9 13:59:33 | 显示全部楼层
本帖最后由 °蓝鲤歌蓝 于 2021-2-9 14:06 编辑
qqw 发表于 2021-2-9 11:30
不就是调用“__get__”的函数,输出才会有“正在获取变量x”,这个都调用了,为什么没有输出返回值的“se ...


什么叫 “不就是 xxx”?
是你自己都不明白 IDLE 怎么用,什么是交互式也不懂。
输出 “正在获取变量x” 是因为在类里面 print 了这段字符串。
可是 self.val 你又没 print,为什么要给你输出啊? 想打印出来你 倒是 print 啊,要是不想 print, 想获取 self.val 也行,可以直接输入存储这个 self.val 的变量(下面的 y )啊。
你输入个 y 不就给你返回了 10 (self.val)嘛。可是你输入的
  1. y = test.x
复制代码
一个整体没有值 的表达式,IDLE 要怎么给你返回啊。
所以你要想输出 self.val,要给 IDLE 输入存储它的变量名 y,这样它才给你返回值,你输入个  表达式 有什么用啊。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-9 14:20:15 | 显示全部楼层
°蓝鲤歌蓝 发表于 2021-2-9 13:59
什么叫 “不就是 xxx”?
是你自己都不明白 IDLE 怎么用,什么是交互式也不懂。
输出 “正在获取变量 ...

对,你说的很对,我啥都不懂,不懂才会问,真是谢谢你呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-2-9 14:23:22 | 显示全部楼层
qqw 发表于 2021-2-9 14:20
对,你说的很对,我啥都不懂,不懂才会问,真是谢谢你呢

不客气, 不过是 随手帮别人一把而已呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-9 14:25:54 | 显示全部楼层
°蓝鲤歌蓝 发表于 2021-2-9 14:23
不客气, 不过是 随手帮别人一把而已呢

是呢,谢谢你渊博的知识
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-28 00:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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