zoukankan      html  css  js  c++  java
  • @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:不是整型数字")

    定义一个property属性

    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)  # 定义一个属性,当对这个money设置值时调用setMoney,当获取值时调用getMoney
    
    a = Money()
    a.money = 101  # 调用setMoney方法
    print(a.money)  # 调用getMoney方法

    使用@property

    class Money(object):
        def __init__(self):
            self.__money = 0
    
        @property
        #使用装饰器对money进行装饰,那么会自动添加一个叫money的属性,当调用获取money的值时,调用此下一行的方法
        def money(self):
            return self.__money
    
        @money.setter
        #使用装饰器对money进行装饰,当对money设置值时,调用下一行的方法
        def money(self, value):
            if isinstance(value, int):
                self.__money = value
            else:
                print("error:不是整型数字")
    
    a = Money()
    a.money = 100
    print(a.money)
    LESS IS MORE !
  • 相关阅读:
    財智V6.0(完美破解序列号特别版)
    垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
    HDU1006
    HDU 1385 Minimum Transport Cost 最短路径题解
    fast-json.jar的用法
    curl命令具体解释
    mysql很全的和完整的总结
    MongoDB入门简单介绍
    Tuxedo入门学习
    BP神经网络基本原理
  • 原文地址:https://www.cnblogs.com/maxiaohei/p/7800281.html
Copyright © 2011-2022 走看看