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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python面向对象之property用法补充(getter,setter,deleter)相关的知识,希望对你有一定的参考价值。

用法一:

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)的主要内容,如果未能解决你的问题,请参考以下文章

day32--面向对象的程序设计之继承实现的原理(继承顺序)封装property

Python面向对象之反射

面向对象编程之property装饰器

python8之面向对象补充之使用场景

Python 面向对象 之 @property

python8之面向对象补充之知识点回顾