当前位置 : 主页 > 手机开发 > 其它 >

二十.面向对象 property使用

来源:互联网 收集:自由互联 发布时间:2021-06-19
一. property使用一个静态属性property本质就是实现了get,set,delete三种方法 class Foo: @property def AAA(self): print ( ‘ get的时候运行我啊 ‘ ) @AAA.setter def AAA(self,value): print (value, " ***************

一.  property使用  一个静态属性property本质就是实现了get,set,delete三种方法

class Foo:
    @property
    def AAA(self):
        print(get的时候运行我啊)

    @AAA.setter
    def AAA(self,value):
        print(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

#
# get的时候运行我啊
# set的时候运行我啊
# delete的时候运行我啊
AAA=property(get_AAA,set_AAA,delete_AAA) #内置property三个参数与get,set,delete一一对应


class Foo:
    def get_AAA(self):
        print(get的时候运行我啊)

    def set_AAA(self,value):
        print(set的时候运行我啊)

    def delete_AAA(self):
        print(delete的时候运行我啊)
AAA
=property(get_AAA,set_AAA,delete_AAA) #内置property三个参数与get,set,delete一一对应 f1=Foo() f1.AAA f1.AAA=aaa del f1.AAA # get的时候运行我啊 # set的时候运行我啊 # delete的时候运行我啊
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     # 删除商品原价

案例一
网友评论