46讲动动手0题
class MyDes:def __init__(self, initval=None, name=None):
self.val = initval
self.name = name
def __get__(self, instance, owner):
print("正在获取变量:", self.name)
return self.val
def __set__(self, instance, value):
print("正在修改变量:", self.name)
self.val = value
def __delete__(self, instance):
print("正在删除变量:", self.name)
print("噢~这个变量没法删除~")
class Test:
x = MyDes(10, 'x')
为什么运行时候 y = test.x,只输出“正在获取变量: x”,没有return值? y的值不就是return给的吗 y = test.x
只是一个表达式,这个表达式没有值 °蓝鲤歌蓝 发表于 2021-2-7 21:06
只是一个表达式,这个表达式没有值
不就是调用“__get__”的函数,输出才会有“正在获取变量x”,这个都调用了,为什么没有输出返回值的“self.val” 本帖最后由 °蓝鲤歌蓝 于 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)嘛。可是你输入的 y = test.x 一个整体没有值 的表达式,IDLE 要怎么给你返回啊。
所以你要想输出 self.val,要给 IDLE 输入存储它的变量名 y,这样它才给你返回值,你输入个表达式 有什么用啊。 °蓝鲤歌蓝 发表于 2021-2-9 13:59
什么叫 “不就是 xxx”?
是你自己都不明白 IDLE 怎么用,什么是交互式也不懂。
输出 “正在获取变量 ...
对,你说的很对,我啥都不懂,不懂才会问,真是谢谢你呢 qqw 发表于 2021-2-9 14:20
对,你说的很对,我啥都不懂,不懂才会问,真是谢谢你呢
不客气, 不过是 随手帮别人一把而已呢 °蓝鲤歌蓝 发表于 2021-2-9 14:23
不客气, 不过是 随手帮别人一把而已呢
是呢,谢谢你渊博的知识
页:
[1]