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

用法一:ide

class Foo:get

    @propertyit

    def AAA(self):class

        print('get的时候运行我啊')di

    @AAA.setterview

    def AAA(self,value):vi

        print('set的时候运行我啊')co

    @AAA.deletereditor

    def AAA(self):let

        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     # 删除商品原价

相关文章
相关标签/搜索