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 !
  • 相关阅读:
    2017免费获取正版win10的方法
    Apache <Directory>… </Directory>配置
    针对left join以及limit的两条优化小技巧
    win10打印机突然无法启动
    mysql中的分组统计函数及其用法实例
    程序猿的日常生活-雨中
    java中的反射
    mysql中的截取函数及其实例
    集合与数组
    方法重写
  • 原文地址:https://www.cnblogs.com/maxiaohei/p/7800281.html
Copyright © 2011-2022 走看看