python-getattr/hasattr内置函数


1、getattr() 是python中的一个内置函数,用来获取对象中的属性值

2、getattr(obj,name,default) 其中 obj 为对象名,name 是对象中的属性;必须为字符串;default为默认值,当属性不存在时的返回值

看一下源代码:

def getattr(object, name, default=None): # known special case of getattr
    """
    getattr(object, name[, default]) -> value
    
    Get a named attribute from an object; getattr(x, 'y') is equivalent to x.y.
    When a default argument is given, it is returned when the attribute doesn't
    exist; without it, an exception is raised in that case.
    """
    pass

  看一下例子:

class Persion():
    # def __init__(self):
    #     self.name = "richard"
    #     self.age = 22
    #     self.weight = 60
    #     self.country = 'China'
    name = "richard"
    age = 22
    weight = 60
    country = 'China'

if __name__ == '__main__':
    x = getattr(Persion,'age',10)
    print(x)

  运行打印:

3、 hasattr()函数用于判断对象是否包含对应的属性

  hasattr(object,name) -- object--对象,name--字符串,属性  return,如果对象中含有该属性返回true,否则返回false。

def hasattr(*args, **kwargs): # real signature unknown
    """
    Return whether the object has an attribute with the given name.
    
    This is done by calling getattr(obj, name) and catching AttributeError.
    """
    pass

相关