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 异常

猜你喜欢

转载自blog.csdn.net/huage926/article/details/134673358