python 46课,关于描述符的问题,求解。
本帖最后由 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的值,但并不会打印相关操作的内容,要怎样改才能显示后面添加的属性呢?
最后那句话写的有瑕疵 没看懂如果输入test.y=5,可以添加y的属性,也可以获取到y的值,但并不会打印相关操作的内容,要怎样改才能显示后面添加的属性呢?这个y是左边啊来个y=5? 我贴运行的图吧,刷新一下
南城顾她 发表于 2018-3-1 08:55
最后那句话写的有瑕疵 没看懂如果输入test.y=5,可以添加y的属性,也可以获取到y的值,但并不会打印相关操 ...
贴了结果的截图 你的y没有定义你那样改只不过是给test.y赋值为5,结果自然就是5 你改x=myDes(10,'x') 这个值或者重新定义一个对象然后输出
页:
[1]