【Python之路】特别篇--property()函数 和 @property 装饰符
2024-09-05 09:18:29
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
注意: 同一属性的三个函数名要相同。
最新文章
- 史上最全Windows版本搭建安装React Native环境配置
- hdu4405 Aeroplane chess
- 在程序中执行shell命令
- iOS,应用崩溃日志分析
- Web前端开发基础 第四课(CSS文字和段落排版)
- [游戏模版16] Win32 飞机射击 敌人追踪
- input输入框的各种样式
- php把excel数值格式转成日期格式问题
- POJ 3009-Curling 2.0(DFS)
- Java设计模式(四) 装饰 代理模式
- unity 组件开发
- asp.net 第三方UI控件 Telerik KendoUI 之 TreeVIew 的用法记录
- (๑•̀ㅂ•́)و✧随笔总目录ヾ(≧▽≦*)o
- (Release Candidate)Candidate
- 将Chrome插件Momentum背景图片设为桌面壁纸
- Java 容器源码分析之 Deque 与 ArrayDeque
- 20165337岳源 预备作业3:Linux安装及命令入门
- mysql 中语句执行的顺序以及查询处理阶段的分析
- Linux CPU实时监控mpstat命令详解
- [翻译] SIAlertView