python getattr() setattr() hasattr() delattr()内置函数详解
python getattr() setattr() hasattr() delattr()内置函数详解
1.getattr(object, name[, default]):
功能:获取对象的属性值。
参数:
object:要获取属性的对象。
name:属性的名称。
default(可选):如果属性不存在,则返回的默认值。
返回值:返回属性的值,如果属性不存在且没有指定默认值,则会引发 AttributeError 异常。
2.setattr(object, name, value):
功能:设置对象的属性值。
参数:
object:要设置属性的对象。
name:属性的名称。
value:属性的值。
返回值:无。
3.hasattr(object, name):
功能:检查对象是否拥有指定的属性。
参数:
object:要检查的对象。
name:属性的名称。
返回值:如果对象拥有指定属性,则返回 True,否则返回 False。
4.delattr(object, name):
功能:删除对象的指定属性。
参数:
object:要删除属性的对象。
name:属性的名称。
返回值:无。
这些内置函数对于动态操作对象的属性非常有用。例如,可以使用 getattr() 和 setattr() 来动态访问和修改对象的属性,而 hasattr() 和 delattr() 可用于检查属性是否存在并删除属性。
以下是示例代码,演示了这些函数的用法:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Alice", 25)
# 获取属性值
name = getattr(person, "name")
print(name) # 输出: Alice
# 设置属性值
setattr(person, "age", 30)
print(person.age) # 输出: 30
# 检查属性是否存在
has_name = hasattr(person, "name")
print(has_name) # 输出: True
has_address = hasattr(person, "address")
print(has_address) # 输出: False
# 删除属性
delattr(person, "age")
print(person.age) # 引发 AttributeError 异常