zoukankan      html  css  js  c++  java
  • python新式类删改查

     1 class Goods(object):
     2 
     3     def __init__(self):
     4         # 原价
     5         self.original_price = 100
     6         # 折扣
     7         self.discount = 0.8
     8 
     9     @property
    10     def price(self):
    11         # 实际价格 = 原价 * 折扣
    12         new_price = self.original_price * self.discount
    13         return new_price
    14 
    15     @price.setter
    16     def price(self, value):
    17         self.original_price = value
    18 
    19     @price.deleter
    20     def price(self):
    21         del self.original_price
    22 
    23 obj = Goods()
    24 print(obj.price)         # 获取商品价格
    25 obj.price = 200   # 修改商品原价
    26 del obj.price     # 删除商品原价

    简单记下:

    @property
    @price.setter
    @price.deleter
    • property:

    property的构造方法中有个四个参数

    第一个参数是方法名,调用 对象.属性 时自动触发执行方法
    第二个参数是方法名,调用 对象.属性 = XXX 时自动触发执行方法
    第三个参数是方法名,调用 del 对象.属性 时自动触发执行方法
    第四个参数是字符串,调用 对象.属性.__doc__ ,此参数是该属性的描述信息

     1 class Foo:
     2     def get_bar(self):
     3         return 'abcdefd'
     4 
     5     # *必须两个参数
     6     def set_bar(self, value):
     7         return 'set value' + value
     8 
     9     def del_bar(self):
    10         return 'abcdefd'
    11 
    12     BAR = property(get_bar, set_bar, del_bar, 'description...')
    13 
    14 obj = Foo()
    15 
    16 obj.BAR              # 自动调用第一个参数中定义的方法:get_bar
    17 obj.BAR = "egon"     # 自动调用第二个参数中定义的方法:set_bar方法,并将“alex”当作参数传入
    18 del obj.BAR          # 自动调用第三个参数中定义的方法:del_bar方法
    19 print(obj.BAR.__doc__ )     # 自动获取第四个参数中设置的值:description...
    20 print(obj.BAR)
    
    print(obj.BAR.__doc__ )实际上并没有打印'description...'


    
    
  • 相关阅读:
    linux hosts文件详+mac主机名被莫名其妙修改
    WPF整理--动态绑定到Logical Resource
    WPF整理-使用逻辑资源
    WPF整理-自定义一个扩展标记(custom markup extension)
    WPF整理-XAML访问静态属性
    WPF整理-为控件添加自定义附加属性
    WPF整理-为User Control添加依赖属性
    使用MS Test进行单元测试
    WPF整理-XAML构建后台类对象
    毕业那点事儿--回顾在大学这7年
  • 原文地址:https://www.cnblogs.com/litzhiai/p/7837947.html
Copyright © 2011-2022 走看看