# 翻页功能
class Pager:
    def __init__(self,page):
        self.page = page
        self.page_num = 12
    @property
    def start(self):
        ret = (self.page - 1) * self.page_num
        return ret
    @property
    def end(self):
        ret = self.page * self.page_num
        return ret
p = Pager(5)
# print(p.start())
# print(p.end())
print(p.start)
print(p.end)
# 商场打折    
class Goods(object):
    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   # 修改商品原价
del obj.price     # 删除商品原价
class Foo(object):
    def get_bar(self):
        print("getter...")
        return 'laowang'
    def set_bar(self, value):
        """必须两个参数"""
        print("setter...")
        return 'set value' + value
    def del_bar(self):
        print("deleter...")
        return 'laowang'
    BAR = property(get_bar, set_bar, del_bar, "description...")
obj = Foo()
obj.BAR  # 自动调用第一个参数中定义的方法:get_bar
obj.BAR = "alex"  # 自动调用第二个参数中定义的方法:set_bar方法,并将“alex”当作参数传入
desc = Foo.BAR.__doc__  # 自动获取第四个参数中设置的值:description...
print(desc)
del obj.BAR  # 自动调用第三个参数中定义的方法:del_bar方法    
property