|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
首先说一下我目前知道的
大概property的用法
- class C:
- def __init__(self,value=10):
- self.name=value
- def getter(self):
- return self.name
- def setter(self,value):
- self.name=value
- def deler(self):
- del self.name
- x=property(getter,setter,deler)
-
- c=C()
- c.x
- 10
- del c.x
- c.x
- Traceback (most recent call last):
- File "<pyshell#53>", line 1, in <module>
- c.x
- File "<pyshell#49>", line 5, in getter
- return self.name
- AttributeError: 'C' object has no attribute 'name'
- c.x=12
- c.x
- 12
- c.name
- 12
复制代码
我感觉和下面代码作用差不多(不知道对不对)
- class C:
- def __init__(self,value=10):
- self.name_=value
- @property
- def name(self):
- return self.name_
- @name.setter
- def name(self,value):
- self.name_=value
- @property
- def deler(self):
- del self.name_
-
- c=C()
- c.name
- 10
- c.name=12
- c.name
- 12
复制代码
用property应该还是会用一点点
不过原理不是很理解
问题一:(图片中)__get__方法的几个参数不理解,这里的__get__方法的instance指的是Test实例t(为什么是t呢),还有owner在这里的作用是什么呢?
__set__同问。
问题二:就简要分析一下property的原理(希望我能听懂 )主要是那个x(图片中),它怎么工作的,感觉它既像Test类里的属性,有像MyPorperty类里的实例对象
它是怎么绕一圈到调用Test里的方法的?
问题三:使用property的优点
小白求助,希望各位大佬帮忙解释一下
|
-
这是网上找的,看了一下不完全懂
|