hasattr()
和 getattr()
是 Python 内置函数,用于处理对象的属性。
hasattr(object, attribute)
函数用于检查对象是否具有指定的属性。它接受两个参数,object
是要检查的对象,attribute
是要检查的属性名。如果对象具有指定的属性,则返回True
,否则返回False
。
下面是一个示例,说明如何使用 hasattr()
函数:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Alice", 25)
print(hasattr(person, 'name')) # 输出: True
print(hasattr(person, 'age')) # 输出: True
print(hasattr(person, 'gender')) # 输出: False
在上述示例中,我们创建了一个 Person
类的实例 person
,并使用 hasattr()
函数检查 person
对象是否具有 'name'
、'age'
和 'gender'
属性。结果表明 person
对象具有 'name'
和 'age'
属性,但没有 'gender'
属性。
getattr(object, attribute, default)
函数用于获取对象的属性值。它接受三个参数,object
是要获取属性值的对象,attribute
是要获取的属性名,default
是可选的默认值,当属性不存在时返回该值。
下面是一个示例,说明如何使用 getattr()
函数:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Alice", 25)
print(getattr(person, 'name')) # 输出: 'Alice'
print(getattr(person, 'age')) # 输出: 25
print(getattr(person, 'gender', 'Unknown')) # 输出: 'Unknown'
在上述示例中,我们使用 getattr()
函数获取 person
对象的 'name'
和 'age'
属性值。如果属性存在,则返回属性值;如果属性不存在,则返回指定的默认值 'Unknown'
。
总结:
hasattr()
用于检查对象是否具有指定属性。getattr()
用于获取对象的属性值,可选地指定默认值。
这两个函数通常在需要动态地检查和访问对象属性时使用,可以在运行时根据实际情况进行属性操作。