码迷,mamicode.com
首页 > 编程语言 > 详细

python面向对象之property用法补充(getter,setter,deleter)

时间:2017-04-23 10:49:50      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:property   python   

用法一:

class Foo:

    @property

    def AAA(self):

        print(‘get的时候运行我啊‘)

    @AAA.setter

    def AAA(self,value):

        print(‘set的时候运行我啊‘)

    @AAA.deleter

    def AAA(self):

        print(‘delete的时候运行我啊‘)

#只有在属性AAA定义property后才能定义AAA.setter,AAA.deleter

f1=Foo()

f1.AAA

f1.AAA=‘aaa‘

del f1.AAA


用法二:

class Goods:

    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_price

obj = Goods()

obj.price         # 获取商品价格

obj.price = 200   # 修改商品原价

print(obj.price)

del obj.price     # 删除商品原价


使用示例:

class Goods:

    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_price

obj = Goods()

obj.price         # 获取商品价格

obj.price = 200   # 修改商品原价

print(obj.price)

del obj.price     # 删除商品原价


本文出自 “reBiRTH” 博客,请务必保留此出处http://suhaozhi.blog.51cto.com/7272298/1918535

python面向对象之property用法补充(getter,setter,deleter)

标签:property   python   

原文地址:http://suhaozhi.blog.51cto.com/7272298/1918535

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!