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
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