zoukankan      html  css  js  c++  java
  • python @property装饰器

    1.通过@property装饰器,可以直接通过方法名来访问方法,不需要在方法名后添加一对“()”小括号。

    class Person:
        def __init__(self, name):
            self.__name = name
        @property
        def say(self):
            return self.__name
    xioabai = Person("xiaobai")
    #直接通过方法名来访问say方法
    print("我的名字是:", xiaobai.say)
    
    我的名字是: xiaobai
    

    上面程序中,使用@property修饰了say()方法,这就使得该方法变成了name属性的getter方法。

    2.使用setter装饰器,可以为say方法添加setter方法。

    class Person:
        def __init__(self, name):
            self.__name = name
        @property
        def say(self):
            return self.__name
        @say.setter
        def say(self, value):
            self.__name = value
    xiaobai = Person("xiaobai")
    xiaobai.say = "xiaohei"
    print("我的名字其实是:", xiaobai.say)
    
    我的名字其实是: xiaohei
    

    3.使用deleter装饰器来删除指定属性,可以为say方法添加deleter方法

    class Person:
        def __init__(self, name):
            self.__name = name
        @property
        def say(self):
            return self.__name
        @say.setter
        def say(self, value):
            self.__name = value
        @say.deleter
        def say(self):
            self.__name = "xxx"
    xiaobai = Person("xiaobai")
    del xiaobai.say
    print("我的名字其实是:", xiaobai.say)
    
    我的名字其实是: xxx
    
  • 相关阅读:
    http协议(二、报文格式)
    http协议(一、基础部分)
    echarts双轴轴线不对齐的解决办法
    svn 强制解锁的解决办法
    分析器错误
    JQgrid for asp.net
    养生宝典,值得一读(健康养生)
    ORM框架是什么
    WebSite和WebApplication的区别
    MVC3和MVC4相关问题
  • 原文地址:https://www.cnblogs.com/xiaobaizzz/p/12227463.html
Copyright © 2011-2022 走看看