• 二十.面向对象 property使用


    一.  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     # 删除商品原价
    
    案例一
  • 相关阅读:
    基于CodeSmith的三层架构代码模板
    全自动时代:JavaScript自动压缩插件
    NServiceBus最流行的开源企业服务总线 for .Net
    神奇的东西
    WebMatrix
    .Net TDD我用Machine.Specification
    JQuery Smart UI 简介(四) — 强大的适用性&存在问题【项目使用性介绍】
    JQuery Smart UI 简介(三)
    JQuery Smart UI 简介(二)
    基于WCF大型分布式系统的架构设计
  • 原文地址:https://www.cnblogs.com/Sup-to/p/11090349.html
Copyright © 2020-2023  润新知