[python学习] 介绍python的property,以及为什么要用setter,一个小栗子
2024-10-01 03:40:42
python中的property是比较好用的。
先来一段代码
#-*- coding:utf-8 -*- class C(object):
status_dict = {
1: 'accept',
2: 'reject'
}
def __init__(self):
self._x = 1 @property
def status(self):
return self.status_dict[self._x] @status.setter
def status(self, val):
if val == 'reject':
self._x = 2
elif val == 'accept':
self._x = 1 c = C() print c.status
print c._x
c.status = 'reject'
print c.status
print c._x
这段代码用了property装饰器还用了setter,我之前用property比较多,比如我已经制定了一个状态,但是想获得这个状态对应的中文描述,加一个property就好,这样可以把这个状态当作这个对象的属性来操作,但是我知道了状态的描述想要改变这个描述,该怎么办呢,而且我还不知道对应的关系,这个时候setter就上场了。
-------------------
先割一下,先写这么多,再慢慢补充。
最新文章
- HTTP、HTTP2
- sql语句-ALTER TABLE
- 一种集合“相等性”的实现
- LeetCode题解-----Median of Two Sorted Arrays
- 设置浮点数的显示精度&;precision(0)
- NAS、DAS和SAN三种存储究竟是什么?
- 学习第一个头文件stdio.h
- hdu 5654 xiaoxin and his watermelon candy 莫队
- 基于 dbms_redefinition 在线重定义表
- kali系统教程:创建热点
- FusionCharts封装-单系列图
- SQL语句常见DDL/DML/DCL操作部分试题(一)
- .apply()用法和call()的区别
- input 的 oninput onkeypress onkeydown onchange 事件的区别
- Fastjson 爆出远程代码执行高危漏洞,更新版本已修复
- js使用正则表达式实现文本框只能输入数字和小数点
- Spring IOC - 控制反转(依赖注入) - 入门案例 - 获取对象的方式 - 别名标签
- 在Visual Studio中使用.lib和.dll的环境搭建
- sprintf函数 %6.2f
- Eolinker——代码注入插入随机参数值