美文网首页
应用场景

应用场景

作者: 匿隱 | 来源:发表于2019-02-12 09:32 被阅读0次

1.应用场景

getter: 获取对象属性的值之前想要做点儿别的事情,就给这个属性添加getter
setter: 给对象属性赋值之前想要做点儿别的事情,就给这个属性添加setter

2.getter

第一步:声明属性的时候在属性名前加_
第二步: 声明函数(函数没有除了self以外的参数,但是要与返回值。返回值就是获取属性拿到的值)
@property
def 去掉的属性名(self):
      做点别的事情
     返回属性的值
第三步:在类的外部通过对象.去掉
的属性去获取相关的属性

3.setter - 想要添加setter必须先要有getter

第一步:声明属性的时候在属性名前加_
第二步: 声明函数(函数除了self以外还需要一个参数,没有返回值。这儿的参数代表给属性赋的值)
@属性名去掉.setter
def 去掉
的属性名(self, 参数):
     做点别的事情
     给属性赋值
第三步:在类的外部通过对象.去掉_的属性去给相关属性赋值

class Person:
    def __init__(self, name=''):
        self.name = name
        self._age = 0
        self._week = 7    # 属性名前有_,使用属性的时候不要直接用

    @property
    def age(self):
        return self._age

    # 给age添加setter
    @age.setter
    def age(self, value):
        if not isinstance(value, int):
            raise ValueError
        if not (0 <= value <= 150):
            raise ValueError
        self._age = value

    # 给week添加getter
    @property
    def week(self):
        if self._week < 7:
            return '星期%d' % self._week
        else:
            return '星期天'

    @week.setter
    def week(self, value):
        self._week = value


def main():
    p1 = Person('小明')

    # 通过不带_的属性给属性赋值实质是在调用setter对应的函数
    p1.age = 45
    p1.age = 3

    # 这个操作实质是在调用week函数
    # 通过不带_的属性来获取属性的值实质是在调用getter对应的函数
    print(p1.week)
    p1.week = 4

相关文章

  • Redis Learning

    应用场景:redis 适用于小而热的数据 Redis应用场景 Redis作者谈Redis应用场景我们在应用redi...

  • 【ML】机器学习算法应用场景实例六十则

    本文整理了60个机器学习算法应用场景实例,含分类算法应用场景20个、回归算法应用场景20个、聚类算法应用场景10个...

  • 13 个 GCD 应用场景

    13 个 GCD 应用场景 13 个 GCD 应用场景

  • 【AI知识】人工智能的应用场景/建议收藏

    本文主要从现有人工智能水平应用场景和人工智能应用场景入手: 一,人工智能水平应用场景 人工智能水平应用场景主要有:...

  • 应用场景

    H5应用场景很宽泛的,比如:微信好友结婚时分享的链接;人民日报客户端不定期的H5展示领导金句,我为祖国添光彩等活动...

  • runloop场景应用

    应用场景举例:主线程的 RunLoop 里有两个预置的 Mode:kCFRunLoopDefaultMode 和 ...

  • 应用场景

    1.应用场景 getter: 获取对象属性的值之前想要做点儿别的事情,就给这个属性添加gettersetter: ...

  • redis场景应用

    抢购 使用push pop防止物品库存为负数

  • 应用场景

    [应用场景]纪录片的应用,如果我们企业需要推广产品,一般是宣传片,或者是请明星代言的广告片,打的就是爆发力。短板也...

  • redis场景应用

    redis场景应用 redis存储类型:string(字符串)、hash(哈希)、list(列表)、set(无序集...

网友评论

      本文标题:应用场景

      本文链接:https://www.haomeiwen.com/subject/setljqtx.html