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
    
  • 相关阅读:
    iOS开发---iPhone SDK 包含哪些东西?
    COS-8文件系统
    COS-7设备管理
    COS-6主存管理
    COS-5资源分配与调度
    COS-4进程及进程管理
    饭卡管理系统学生E-R图
    COS-3OS的用户接口
    COS-2OS结构和硬件支持
    计算机操作系统-1绪论
  • 原文地址:https://www.cnblogs.com/xiaobaizzz/p/12227463.html
Copyright © 2011-2022 走看看