属性property
来源:互联网 发布:投影仪检测软件 编辑:程序博客网 时间:2024/05/22 02:02
1. 私有属性添加getter和setter方法class Money(object): def __init__(self): self.__money = 0 def getMoney(self): return self.__money def setMoney(self, value): if isinstance(value, int): self.__money = value else: print("error:不是整型数字")
2. 使用property升级getter和setter方法
class Money(object): def __init__(self): self.__money = 0 def getMoney(self): return self.__money def setMoney(self, value): if isinstance(value, int): self.__money = value else: print("error:不是整型数字") money = property(getMoney, setMoney)
运行结果:In [1]: from get_set import MoneyIn [2]: In [2]: a = Money()In [3]: In [3]: a.moneyOut[3]: 0In [4]: a.money = 100In [5]: a.moneyOut[5]: 100In [6]: a.getMoney()Out[6]: 100
3. 使用property取代getter和setter方法
@property
成为属性函数,可以对属性赋值时做必要的检查,并保证代码的清晰短小,主要有2个作用
- 将方法转换为只读
- 重新实现一个属性的设置和读取方法,可做边界判定
class Money(object): def __init__(self): self.__money = 0 @property def money(self): return self.__money @money.setter def money(self, value): if isinstance(value, int): self.__money = value else: print("error:不是整型数字")运行结果In [3]: a = Money()In [4]: In [4]: In [4]: a.moneyOut[4]: 0In [5]: a.money = 100In [6]: a.moneyOut[6]: 100
阅读全文
0 0
- property(属性)
- @property 属性
- Property 属性
- property属性
- @property属性
- @property属性
- 属性(Property)
- 属性property
- J2ME Property属性表
- J2ME Property属性表
- Hibernate property-ref属性
- J2ME Property属性表
- J2ME Property属性表
- Qt属性setProperty & property
- android native property属性
- iphone的property属性
- property 属性讲解
- android native property属性
- 蒟蒻复习之-----最小生成树
- C++实现向量构造的线性表
- CCF20150303节日
- 深入分析ThreadPoolExecutor之一
- SQL查询字段添加括号报错:Operand should contain 1 column(s)
- 属性property
- NYOJ 38 布线问题 最小生成树 prim与Kruskal
- mybash
- Kruskal算法实现最小生成树
- Java初始化执行顺序
- 第五周 【项目 3
- 自学网
- MFC网络通信(一):基本概念
- 移动架构26_设计模式六大原则四:依赖倒置原则