|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
小甲鱼在40讲在介绍property函数时讲到作用是通过属性设置属性。
它用到的主要方法是set,get和del,见property的说明(property(fget=None, fset=None, fdel=None, doc=None))
- class C:
- def __init__(self, size = 10):
- self.size = size
- def getsize(self):
- return self.size
- def setsize(self, value):
- self.size = value
- def delsize(self):
- del self.size
- x = property(getsize, setsize, delsize)
- c1 =C()
复制代码- >>> c1.x
- 10
- >>> c1.x =15
- >>> c1.x
- 15
- >>> del c1.x
- >>> c1.x
- Traceback (most recent call last):
- File "<pyshell#38>", line 1, in <module>
- c1.x
- File "D:/py/test.py", line 5, in getsize
- return self.size
- AttributeError: 'C' object has no attribute 'size'
复制代码
问题是这几个方法都无需定义呀。比如:
- class C:
- def __init__(self, size = 10):
- self.size = size
- c1 =C()
复制代码- >>> c1.size
- 10
- >>> c1.size = 15
- >>> c1.size
- 15
- >>> del c1.size
- >>> c1.size
- Traceback (most recent call last):
- File "<pyshell#48>", line 1, in <module>
- c1.size
- AttributeError: 'C' object has no attribute 'size'
复制代码 |
评分
-
查看全部评分
|