# 请利用@property给一个Screen对象加上width和height属性,
# 以及一个只读属性resolution: # -*- coding: utf-8 -*-
class Screen(object):
@property
def width(self):
return self._width @width.setter
def width(self, value):
self._width = value @property
def height(self):
return self._height @height.setter
def height(self, value):
self._height = value @property
def resolution(self):
return self._width + self._height s = Screen()
s.width = 1024
s.height = 768 print(s.resolution)
assert s.resolution == 786432, '1024 * 768 = %d ?' % s.resolution

@property的实现比较复杂,我们先考察如何使用。把一个getter方法变成属性,只需要加上@property就可以了,此时,@property本身又创建了另一个装饰器@height.setter,负责把一个setter方法变成属性赋值,于是,我们就拥有一个可控的属性操作。

最新文章

  1. 开启MySQL日志
  2. HBase集群安装过程中的问题集锦
  3. Java+FlexPaper+swfTools仿百度文库文档在线预览系统设计与实现
  4. C# 文件读取方法,自己写的例子,保存一下,备用
  5. 循序渐进Python3(一)-- 初识Python
  6. java protected 与默认权限的区别
  7. POJ 2533 Longest Ordered Subsequence(LIS模版题)
  8. java 23种设计模式及具体例子 收藏有时间慢慢看
  9. HDU 1754 单点更新,求区间最大值
  10. matlab和C/C++混合编程--Mex (六)参数传递
  11. C# Tips: Draw a data table in console
  12. Cocos2d-x Tiled地图编辑器(一)基本使用
  13. Struts Chain ClassCastException Aop
  14. [Swift]LeetCode899. 有序队列 | Orderly Queue
  15. MySQL之初识数据库
  16. Python之模块和包
  17. npm 切换源 nrm
  18. Ubuntu shutdown now 关机后 开机黑屏
  19. Machine Learning第十一周笔记:photo OCR
  20. Scrum Meeting NO.3

热门文章

  1. 软工实践 - 第三十次作业 Beta答辩总结
  2. Iterable,Iterator和forEach
  3. n元一维向量向左循环移位i的几种算法
  4. 7. 由一道ctf学习变量覆盖漏洞
  5. IDEA配置Java Web项目
  6. phpisset()和empty()函数区别
  7. TClientDataSet[5]: 读取数据
  8. Vue2.0 - 全局操作 Vue.set
  9. xheditor在线编辑器在.netMVC4中的使用
  10. 题解 P1765 【手机_NOI导刊2010普及(10)】