请教各位个小问题
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')
>>> test = Test()
>>> y = test.x
正在获取变量: x #为什么这里没有打印出10啊?不是调用描述符类中的__get__()方法吗?
>>> y
10 #这个为什么打印出10
y = test.x
这相当于一个赋值操作 ,y赋值了test.x的返回值
类似于你输入 y = 10 ,也不会打印10
但是你输入y的时候会返回10
页:
[1]