顾名思义,@property就是一个跟属性相关的装饰器, 使用了它之后,取值和赋值操作都变得简洁

from datetime import date, datetime

class User:
def __init__(self, name, birthday):
self.name = name
self.birthday = birthday
self._age = 0 # 相当于get操作
@property
def age(self):
# return datetime.now().year - self.birthday.year
return self._age # 相当于set操作
@age.setter
def age(self, value):
self._age = value if __name__ == '__main__':
user = User('lucy', date(year=2000, month=1, day=2))
print(user.age) # 如果age方法上没有property装饰器,这样是不行的 user.age = 66 # 赋值操作
print(user.age) # 66 取值操作

最新文章

  1. Android二维码的生成,解析以及扫描功能
  2. SQLite vs MySQL vs PostgreSQL:关系型数据库比较
  3. 为现有图像处理程序添加读写exif的功能
  4. python第一天基础1-1
  5. python --- Python中的callable 函数
  6. ISO 14229 简介 转载
  7. HDU 4870 Rating (2014 Multi-University Training Contest 1)
  8. HTML5随笔
  9. HDU-1009(简单贪心)
  10. C++ 实现网络爬虫
  11. vue.js快速搭建图书管理平台
  12. DjangoRestFramework实践笔记
  13. FCC学习笔记(二)
  14. 手动安装 Eclipse 插件 Viplugin
  15. BZOJ3435[Wc2014]紫荆花之恋——动态点分治(替罪羊式点分树套替罪羊树)
  16. layui 子页面向父页面传值
  17. c#阿里云服务器发送邮件
  18. shell脚本中打印所有匹配某些关键字符的行或前后各N行
  19. 【转】如何应用Query语句进行规则的语法设置?
  20. queue模块回顾

热门文章

  1. leetcode 695 Max Area of Island 岛的最大面积
  2. python 设置开机启动脚本
  3. R语言CSV文件
  4. myeclipse 2015 myeclipse2010破解共存
  5. POI向Excel中写入数据及追加数据
  6. struts2 基础3 文件上传、拦截器
  7. mysql查询字段类型为json时的两种查询方式。
  8. py学习日记
  9. [BZOJ4358]Permu(回滚莫队)
  10. ubantu 安装mongodb数据库