hasattr() getattr() setattr()用法

69 阅读1分钟

hasattr(object, name):判断一个对象里面是否有 name 属性或者 name 方法,返回布尔值,有name特性返回True, 否则返回False。

getattr(object, name[,default]):获取对象 object 的属性或者方法,如果存在返回该属性值,如果不存在,返回默认值。默认值可选。如果没有设置默认值,且属性不存在会抛出AttributieError。

setattr(object, name, values):给对象的属性赋值,若属性不存在,先创建再赋值。

class Apiserver(object):
    """
    """

    def __init__(self, name):
        self.name = name

    def shell(self):
        return "i am {}".format(self.name)


ins = Apiserver("suse")
print(hasattr(ins, "name"))
print(hasattr(ins, "name1"))

print(getattr(ins, "shell")())


setattr(ins, "version", "1.24")

print(getattr(ins, "version"))

#输出结果
#True
# False
#i am suse
#1.24