📜  python 通过字符串获取对象属性 - Python (1)

📅  最后修改于: 2023-12-03 14:46:19.042000             🧑  作者: Mango

Python通过字符串获取对象属性

在Python中,我们可以使用字符串来获取对象属性。这在动态地操作对象时非常有用。

1. 使用getattr()函数获取对象属性

getattr()函数可以接收一个对象和属性名作为参数,返回该对象指定属性名的属性值。

class Test:
    name = 'test'

obj = Test()
attribute_name = 'name'
value = getattr(obj, attribute_name)
print(value)   # 输出 'test'

在代码中,我们定义了一个Test类和一个对象obj,并在类中定义了一个name属性。然后,我们使用getattr()函数获取该对象的name属性,并将其输出。

2. 使用hasattr()函数检查对象是否具有某个属性

hasattr()函数可以接收一个对象和属性名作为参数,并返回布尔值,表示该对象是否具有指定属性。

class Test:
    name = 'test'

obj = Test()
attribute_name = 'name'
has_attr = hasattr(obj, attribute_name)
print(has_attr)   # 输出 True

在代码中,我们定义了一个Test类和一个对象obj,并在类中定义了一个name属性。然后,我们使用hasattr()函数检查该对象是否具有name属性,并将其输出。

3. 使用setattr()函数设置对象属性值

setattr()函数可以接收一个对象、属性名和属性值作为参数,用于设置指定对象的指定属性名的属性值。

class Test:
    name = 'test'

obj = Test()
attribute_name = 'name'
value = 'new_test'
setattr(obj, attribute_name, value)
print(obj.name)   # 输出 'new_test'

在代码中,我们定义了一个Test类和一个对象obj,并在类中定义了一个name属性。然后,我们使用setattr()函数设置该对象的name属性为'new_test',并将其输出。

4. 使用delattr()函数删除对象的属性

delattr()函数可以接收一个对象和属性名作为参数,用于删除指定对象的指定属性名的属性值。

class Test:
    name = 'test'

obj = Test()
attribute_name = 'name'
delattr(obj, attribute_name)
print(hasattr(obj, attribute_name))   # 输出 False

在代码中,我们定义了一个Test类和一个对象obj,并在类中定义了一个name属性。然后,我们使用delattr()函数删除该对象的name属性,并使用hasattr()函数检查该对象是否具有name属性,输出结果为False。

以上就是Python通过字符串获取对象属性的介绍。通过这些函数,我们可以方便地动态地操作对象的属性。