getattr()、setattr()、hasattr()函数的区别

getattr()方法

getattr(object,name[,default])也可以写成getattr(object, name, default=None)

获取object对象的属性的值,如果存在则返回属性值,如果不存在分为两种情况,一种是没有default参数时,会直接报错;给定了default参数,若对象本身没有name属性,则会返回给定的default值;如果给定的name属性是对象的方法,则返回的是函数对象,需要调用函数对象来获得函数的返回值;

setattr()方法

setattr(object,name,value)

给定object对象的属性name设置属性(object.name=value),如果参数name属性存在于object对象中,则给name属性重新赋值,如果不存在则创建该属性然后赋值

hasattr()方法

hasattr(object,name)

判断object对象中是否存在name属性或方法,如果有则返回True,如果没有则返回False;需要注意的是name参数是以字符串传递,不论他是属性还是方法。

猜你喜欢

转载自blog.csdn.net/weixin_44601149/article/details/89462015