zoukankan      html  css  js  c++  java
  • python中hasattr()、getattr()、setattr()函数的使用

    1. hasattr() 函数用于判断对象是否包含对应的属性。

           用法:hasattr(object, name)

           参数: object -- 对象

                      name -- 字符串,属性名。

      当然对于python的对象而言,属性包含变量和方法;有则返回True;

      没有则返回False;需要注意的是name参数是string类型,所以不管是要判断变量还是方法,其名称都以字符串形式传参;

      getattr和setattr也同样;

          实例:

    #!/usr/bin/python
    # --coding: UTF-8 --
    class Computer():
        #初始化对象的属性
        def __init__(self):
            self.a = 4
            self.b = 5
    
        #定义一个实例方法
        def add(self):
            return self.a+self.b
    
    test = Computer()  #实例化对象test
    print(hasattr(test,'a'))
    print(hasattr(test,'b'))
    print(hasattr(test,'c'))   #没有该属性
    print(hasattr(test,'add')) #判断对象test是否存在方法:add

    运行结果:

               

     2.getattr() 函数用于返回对象的某个属性值。

      用法:getattr(object, name,[default ])

           参数: object -- 对象

                      name -- 字符串,属性名。

          default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。

      获取object对象的属性的值:

      1.如果存在则返回属性值;

           2.如果不存在分为两种情况,一种是没有default参数时,会直接报错;

        给定了default参数,若对象本身没有name属性,则会返回给定的default值。

    实例:

    当设置c的默认属性值:此时就不会报no attribute类型的错误,而是获取到设置的默认属性值

         如果给定的属性name是对象的方法,则返回的是函数对象,

        

    需要调用函数对象来获得函数的返回值;调用的话就是函数对象后面加括号,如func之于func();

         

    3.setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。

           用法:setattr(object, name, value)

           参数: object -- 对象

                      name -- 字符串,属性名。

                       value -- 属性值

         给object对象的name属性赋值value,如果对象原本存在给定的属性name,则setattr会更改属性的值为给定的value;

      如果对象原本不存在属性name,setattr会在对象中创建属性,并赋值为给定的value;

           

     

  • 相关阅读:
    python开发初识函数:函数定义,返回值,参数
    py基础2--列表,元祖,字典,集合,文件
    python中的urlencode与urldecode
    使用pymysql进行mysql数据库操作
    docker 命令
    docker镜象
    docker的安装
    JS中的prototype(原文地址:http://www.cnblogs.com/yjf512/archive/2011/06/03/2071914.html)
    linux远程复制和压缩文件的命令
    rosbag 初尝试
  • 原文地址:https://www.cnblogs.com/caixinxiong/p/12360619.html
Copyright © 2011-2022 走看看