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...'


    
    
  • 相关阅读:
    Window服务的创建与删除
    remoting 中事件找不到订阅者时引发异常的解决办法
    TCP/IP 的一些常识
    JDK ByteBuffer & MINA IoBuffer 总结
    web协议总结
    NIO VS IO
    MINA TCP 粘包 少包最终解决方案
    NIO 之 通道
    流式套接字(TCP)和 数据报套接字(UDP)的区别
    MINA 异步 读写总结
  • 原文地址:https://www.cnblogs.com/litzhiai/p/7837947.html
Copyright © 2011-2022 走看看