Python中有一个被称为属性函数(property)的小概念,它可以做一些有用的事情。在这篇文章中,我们将看到如何能做以下几点:

  • 将方法转换为只读属性

  • 重新实现一个属性的setter和getter方法

1/ 方法转换为只读属性

class Foo:
def __init__(self,name):
self.name = name @property
def getter(self):
return self.name f = Foo('Abcd')
ret = f.getter
print(ret) #Abcd

2/ 使用 property 取代setter和getter方法

class Foo:
def __init__(self):
self.name = None def getter(self):
return self.name def setter(self,value):
self.name = value fee = property(getter,setter) f = Foo()
f.fee = 'en'
ret = f.fee
print(ret)

property函数原型为 property(fget=None, fset=None, fdel=None, doc=None) 根据自己需要定义相应的函数即可。

方法二:

class Foo:
def __init__(self):
self.name = None @property
def fee(self):
return self.name @fee.setter
def fee(self,value):
self.name = value @fee.deleter
def fee(self):
del self.name f = Foo()
f.fee = 'en'
ret = f.fee
print(ret)
del f.fee

注意: 同一属性的三个函数名要相同。

最新文章

  1. 史上最全Windows版本搭建安装React Native环境配置
  2. hdu4405 Aeroplane chess
  3. 在程序中执行shell命令
  4. iOS,应用崩溃日志分析
  5. Web前端开发基础 第四课(CSS文字和段落排版)
  6. [游戏模版16] Win32 飞机射击 敌人追踪
  7. input输入框的各种样式
  8. php把excel数值格式转成日期格式问题
  9. POJ 3009-Curling 2.0(DFS)
  10. Java设计模式(四) 装饰 代理模式
  11. unity 组件开发
  12. asp.net 第三方UI控件 Telerik KendoUI 之 TreeVIew 的用法记录
  13. (๑•̀ㅂ•́)و✧随笔总目录ヾ(≧▽≦*)o
  14. (Release Candidate)Candidate
  15. 将Chrome插件Momentum背景图片设为桌面壁纸
  16. Java 容器源码分析之 Deque 与 ArrayDeque
  17. 20165337岳源 预备作业3:Linux安装及命令入门
  18. mysql 中语句执行的顺序以及查询处理阶段的分析
  19. Linux CPU实时监控mpstat命令详解
  20. [翻译] SIAlertView

热门文章

  1. Thinkphp+Ajax带关键词搜索列表无刷新分页实例
  2. java如何防止反编译(转)
  3. 单档——PK单号新增、修改时不允许编辑,PK单号自动生成
  4. Django初步完成:登录、注册、退出
  5. Java super与this
  6. C#颜色对话框(WPF可用)
  7. (一)初识JavaFX
  8. shiro学习(二)
  9. node jade || ejs引擎模板
  10. JS-逻辑运算符的与,或,非