| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
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 
 
 
 |   
 
 
 
 |