首页 > 编程语言 > 详细

python中hasattr()、getattr()、setattr()函数的使用

时间:2020-02-25 13:55:49      阅读:67      评论:0      收藏:0      [点我收藏+]

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

       用法:hasattr(object, name)

       参数: object -- 对象

                  name -- 字符串,属性名。

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

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

  getattr和setattr也同样;

      实例:

技术分享图片
 1 #!/usr/bin/python
 2 # -*- coding: UTF-8 -*-
 3 class Computer():
 4     #初始化对象的属性
 5     def __init__(self):
 6         self.a = 4
 7         self.b = 5
 8 
 9     #定义一个实例方法
10     def add(self):
11         return self.a+self.b
12 
13 test = Computer()  #实例化对象test
14 print(hasattr(test,a))
15 print(hasattr(test,b))
16 print(hasattr(test,c))   #没有该属性
17 print(hasattr(test,add)) #判断对象test是否存在方法:add
hasattr实例源码

 技术分享图片

 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中hasattr()、getattr()、setattr()函数的使用

原文:https://www.cnblogs.com/caixinxiong/p/12360619.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!