zoukankan      html  css  js  c++  java
  • Python内置函数property()使用实例

    class Shuxing():
        def __init__(self, size = 10):
            self.size = size
        def getSize(self):
            return self.size
        def setSize(self, value):
            self.size = value
        def delSize(self):
            del self.size
        x = property(getSize, setSize, delSize)

    >>> sx = Shuxing(100)

    >>> sx.x
    100
    >>> sx.x= 106
    >>> sx.x
    106
    >>> del sx.x
    >>> sx.x
    Traceback (most recent call last):
      File "<pyshell#60>", line 1, in <module>
        sx.x
      File "<pyshell#54>", line 5, in getSize
        return self.size
    AttributeError: 'Shuxing' object has no attribute 'size'

    property()函数中的三个函数分别对应的是获取属性的方法、设置属性的方法以及删除属性的方法,这样一来,外部的对象就可以通过访问x的方式,来达到获取、设置或删除属性的目的。

    当需要更改上例中的getSize、setSize或delSize函数的名称时,如果这些方法是作为接口让用户调用的,那么对用户而言就要修改自己调用的方法名,很麻烦,使用了proprty()后,用户就不需担心这种问题了。

    更多关于属性的内置方法有:

    hasattr():判断对象中是否有指定名称的属性,第一个参数是对象,第二个参数是字符串(属性名称);

    getattr():获取对象中指定的属性的值,如果属性不存在,返回指定的提示字符串,第一个参数是对象,第二参数是字符串(属性名称),第三个参数是字符串(访问的属性不存在时的提示);

    setattr():设置对象中指定的属性的值,如果属性不存在,就自动为对象添加该属性并赋值,第一个参数是对象,第二个参数字符串(属性名称),第三个参数是需要设置的属性对应的值;

    delattr():删除对象中指定的属性,第一个参数是对象,第二个参数需要删除的指定属性的名称。

  • 相关阅读:
    09.安装Collabora Online服务
    08.nextcloud搭建
    07.安装及使用gitlub
    winmerge vs2010
    C#中时间计算汇总
    JS正则表达式大全 转
    js 验证正则
    js验证大全
    CSC 命令编译cs文件
    网站PV、UV以及查看方法(转)
  • 原文地址:https://www.cnblogs.com/paomaliuju/p/5122761.html
Copyright © 2011-2022 走看看