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
    
  • 相关阅读:
    Python语言之并发编程
    python语言之系统工具
    python语言之正则
    python语言之字符串与字节
    Python语言之持久化
    Python语言之数字格式化与时间
    Python语言之异常处理与测试
    Java-AQS源码详解(细节很多!)
    redis的主从复制原理
    Amdahl定律和可伸缩性
  • 原文地址:https://www.cnblogs.com/xiaobaizzz/p/12227463.html
Copyright © 2011-2022 走看看