📅  最后修改于: 2023-12-03 14:46:19.042000             🧑  作者: Mango
在Python中,我们可以使用字符串来获取对象属性。这在动态地操作对象时非常有用。
getattr()函数可以接收一个对象和属性名作为参数,返回该对象指定属性名的属性值。
class Test:
name = 'test'
obj = Test()
attribute_name = 'name'
value = getattr(obj, attribute_name)
print(value) # 输出 'test'
在代码中,我们定义了一个Test类和一个对象obj,并在类中定义了一个name属性。然后,我们使用getattr()函数获取该对象的name属性,并将其输出。
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属性,并将其输出。
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',并将其输出。
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通过字符串获取对象属性的介绍。通过这些函数,我们可以方便地动态地操作对象的属性。