黑马程序员技术交流社区

标题: Python中property属性-大公司都在用哦~~ [打印本页]

作者: 杰哥,我就服你    时间: 2018-6-12 12:32
标题: Python中property属性-大公司都在用哦~~
本帖最后由 杰哥,我就服你 于 2018-6-12 13:31 编辑

property属性把一个方法变成属性调用,写起来像方法,用起来像属性。    经典类property属性

                   例子:class Goods(object):    def __init__(self):        # 原价        self.original_price = 100        # 折扣        self.discount = 0.8    @property    def price(self):        # 实际价格 = 原价 * 折扣        new_price = self.original_price * self.discount        return new_price    @price.setter    def price(self, value):        self.original_price = value    @price.deleter    def price(self):        del self.original_priceobj = Goods()obj.price         # 获取商品价格obj.price = 200   # 修改商品原价del obj.price     # 删除商品原价
            
       2. property属性的另一种定义方式:类属性方式
设计好get,set,del方法之后,后面写入 :
类属性名 = property(get_xxx,set_xxx,del_xxx,“描述内容”)  (顺序必须get,set,del,..)
对象.类属性调用get方法,对象.类属性=XXX调用set方法,del 对象.类属性调用del方法,
对象.类属性.__doc__返回类属性的描述内容             例子:class Goods(object):    def __init__(self):        # 原价        self.original_price = 100        # 折扣        self.discount = 0.8    def get_price(self):        # 实际价格 = 原价 * 折扣        new_price = self.original_price * self.discount        return new_price    def set_price(self, value):        self.original_price = value    def del_price(self):        del self.original_price    PRICE = property(get_price, set_price, del_price, '价格属性描述...')obj = Goods()obj.PRICE          # 获取商品价格obj.PRICE = 200    # 修改商品原价del obj.PRICE      # 删除商品原价Goods.PRICE.__doc__# 获取价格的描述信息










欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2