鱼C论坛

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

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

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

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

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

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

  2.     def __init__(self,value=None,name=None):
  3.         self.val=value
  4.         self.name=name
  5.    
  6.     def __get__(self,instance,owner):
  7.         print('正在获取变量:%s' % self.name)
  8.         return self.val

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

  12.     def __delete__(self,instance):
  13.         print('正在删除变量:%s' % self.name)
  14.         if self.name=='x':
  15.             print('噢~这个变量没法删除~')
  16.         else:
  17.             del self.name
  18.             
  19. class Test:
  20.     x=myDes(10,'x')

  21. test=Test()
复制代码


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

QQ图片20180301092536.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2018-3-1 09:25:10 | 显示全部楼层
我贴运行的图吧,刷新一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

贴了结果的截图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-1 14:58:28 | 显示全部楼层
你的y没有定义你那样改只不过是给test.y赋值为5,结果自然就是5
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-1 14:59:43 | 显示全部楼层
你改x=myDes(10,'x') 这个值或者重新定义一个对象然后输出
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-14 14:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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