zoukankan      html  css  js  c++  java
  • python中@property和property函数使用

    1、基本的@property使用,可以把函数当做属性用

    class Person(object):
        @property
        def get_name(self):
            print('我叫xxx')
     
     
    def main():
        person = Person()
        person.get_name
     
     
    if __name__ == '__main__':
        main()

    2、@property的set,deleter,get

    class Goods(object):
        @property
        def price(self):
            print('@property')
     
        @price.setter
        def price(self,value):
            print('@price.setter:'+str(value))
     
        @price.deleter
        def price(self):
            print('@price.deleter')
     
    obj = Goods()
    obj.price = 50
    obj.price
    del obj.price

    3、@property demo

    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

    4、property函数使用

    class Foo(object):
        def get_name(self):
            print('get_name')
            return 'laowang'
     
        def set_name(self, value):
            '''必须两个参数'''
            print('set_name')
            return 'set value' + value
     
        def del_name(self):
            print('del_name')
            return 'laowang'
     
        NAME = property(get_name, set_name, del_name, 'description.')
     
     
    obj = Foo()
    obj.NAME    #调用get方法
    obj.NAME = 'alex'   #调用set方法
    desc = Foo.NAME.__doc__     #调用第四个描述
    print(desc)
    del obj.NAME    #调用第三个删除方法

    5、property函数操作私有属性的get和set方法

    class Person(object):
        def __init__(self, age):
            self.__age = age
     
        def set_age(self, value):
            self.__age = value
     
        def get_age(self):
            return self.__age
     
        AGE = property(get_age, set_age)
     
     
    person = Person(15)
    person.AGE = 20
    print(str(person.AGE))



  • 相关阅读:
    java实验报告三
    学术论文撰写准备事项整理
    mac终端下运行shell脚本
    关于1*1卷积核的理解
    车牌识别项目的准备思路
    快捷键备忘
    跑caffe过程中的备忘
    caffe中全卷积层和全连接层训练参数如何确定
    从零开始足球战术分析
    卷积与反卷积以及步长stride
  • 原文地址:https://www.cnblogs.com/shenZS/p/10545279.html
Copyright © 2011-2022 走看看