鱼C论坛

 找回密码
 立即注册
查看: 2355|回复: 5

python 46课,关于描述符的问题,求解。

[复制链接]
发表于 2018-3-1 00:41:57 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 checkily 于 2018-3-1 09:25 编辑
class myDes:

    def __init__(self,value=None,name=None):
        self.val=value
        self.name=name
    
    def __get__(self,instance,owner):
        print('正在获取变量:%s' % self.name)
        return self.val

    def __set__(self,instance,value):
        print('正在修改变量:%s' % self.name)
        self.val=value

    def __delete__(self,instance):
        print('正在删除变量:%s' % self.name)
        if self.name=='x':
            print('噢~这个变量没法删除~')
        else:
            del self.name
            
class Test:
    x=myDes(10,'x')

test=Test()

如果输入test.y=5,可以添加y的属性,也可以获取到y的值,但并不会打印相关操作的内容,要怎样改才能显示后面添加的属性呢?

QQ图片20180301092536.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-1 08:55:56 | 显示全部楼层
最后那句话写的有瑕疵 没看懂  如果输入test.y=5,可以添加y的属性,也可以获取到y的值,但并不会打印相关操作的内容,要怎样改才能显示后面添加的属性呢?  这个y是左边啊来个y=5?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-1 09:25:10 | 显示全部楼层
我贴运行的图吧,刷新一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-1 09:27:14 | 显示全部楼层
南城顾她 发表于 2018-3-1 08:55
最后那句话写的有瑕疵 没看懂  如果输入test.y=5,可以添加y的属性,也可以获取到y的值,但并不会打印相关操 ...

贴了结果的截图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-1 14:58:28 | 显示全部楼层
你的y没有定义你那样改只不过是给test.y赋值为5,结果自然就是5
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-1 14:59:43 | 显示全部楼层
你改x=myDes(10,'x') 这个值或者重新定义一个对象然后输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-5 07:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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