• Python @property装饰器


    对于私有属性常常会添加set以及get方法,此时可以使用Python内置的@property装饰器,将set以及get方法简化为如同属性一样调用

    示例:

    普通情况:

    class book:
        _score = 0
    
        def __init__(self):
            self._score = 100
    
        def get_price(self):
            return self._score
    
        def set_price(self,price):
            if not isinstance(price, int):
                raise ValueError('price must be an integer!')
            if price < 0 :
                raise ValueError('price must > 0 !')
            self._score = price
    
    b = book()
    b.set_price(100)
    print("book`s price is :",b.get_price())

    执行输出;

    book`s price is : 100

    使用了@property装饰器之后

    class book:
        _score = 0
    
        def __init__(self):
            self._score = 100
    
        @property
        def price(self):
            return self._score
    
        @price.setter
        def price(self,price):
            if not isinstance(price, int):
                raise ValueError('price must be an integer!')
            if price < 0 :
                raise ValueError('price must > 0 !')
            self._score = price
    
    b = book()
    b.price = 100
    print("book`s price is :",b.price)

    执行输出:

    book`s price is : 100

  • 相关阅读:
    单词 统计
    第十周学习记录
    梦断代码阅读笔记03
    梦断代码阅读笔记02
    梦断代码阅读笔记01
    用户模板和用户场景
    第九周学习记录
    分享好友-分享朋友圈
    生命周期函数-页面刷新
    底部导航的设置
  • 原文地址:https://www.cnblogs.com/tyche116/p/13163305.html
Copyright © 2020-2023  润新知