zoukankan      html  css  js  c++  java
  • python property()函数:定义属性

    正常情况下,类包含的属性应该是隐藏的,只允许通过类提供的方法来间接的实现对类属性的访问和操作。

    class Person:
        #构造函数
        def __init__(self, name):
            self.name = name
        #设置name属性值的函数
        def setname(self, name):
            self.name = name
        #访问name属性值的函数
        def getname(self):
            return self.name
        #删除name属性值的函数
        def delname(self):
            self.name = "xxx"
    xiaobai = Person("xiaobai")
    #获取name属性值
    print(xiaobai.getname())
    #设置name属性值
    xiaobai.setname("xiaohei")
    print(xiaobai.getname())
    #删除name属性值
    xiaobai.delname()
    print(xiaobai.getname())
    
    xiaobai
    xiaohei
    xxx
    

    python中提供了property()函数,可以实现在不破坏类封装原则的前提下,让开发者依旧使用“类对象.属性”的方式操作类中的属性。

    class Person:
        #构造函数
        def __init__(self, name):
            self.__name = name #双前导下划线(私有属性)会导致解释器重写属性名称,以避免子类中的命名冲突
        #设置name属性值的函数
        def setname(self, name):
            self.__name = name
        #访问name属性值的函数
        def getname(self):
            return self.__name
        #删除name属性值的函数
        def delname(self):
            self.__name = "xxx"
        #为name属性配置property()函数
        name = property(getname, setname, delname, '说明文档')
    #调取说明文档的两种方式
    print(Person.name.__doc__)
    help(Person.name)
    xiaobai = Person("xiaobai")
    #获取name属性值
    print(xiaobai.name)
    #设置name属性值
    xiaobai.name = "xiaohei"
    print(xiaobai.name)
    #删除name属性值
    del xiaobai.name
    print(xiaobai.name)
    
    说明文档
    Help on property:
    
        说明文档
    
    xiaobai
    xiaohei
    xxx
    
  • 相关阅读:
    Linux系统备份与还原
    今后的日程安排(面试期间)
    我的下一份工作是什么样子呢?
    WebView 放大缩小
    Android EditText赋值后光标在后面
    android中捕捉menu按键的点击事件
    Android控件常用属性
    点击autocompletetextview时,如果没有输入时显示默认列表
    在Activity里怎样获得另一个xml布局文件的控件
    Android中的AutoCompleteTextView的使用
  • 原文地址:https://www.cnblogs.com/xiaobaizzz/p/12227385.html
Copyright © 2011-2022 走看看