setattr 是 Python 的内置函数,用于设置对象属性的值。通过 setattr 函数,可以动态地为对象添加或修改属性,而无需直接访问对象的属性。
语法
setattr(object, name, value)
- object:要设置属性的对象。
- name:属性的名称,以字符串形式提供。
- value:要设置的属性值。
示例
下面是一些使用 setattr 的示例:
- 示例 1:基本用法
class Person:passperson = Person()
setattr(person, 'name', 'Alice')
setattr(person, 'age', 30)print(person.name) # 输出: Alice
print(person.age) # 输出: 30
- 示例 2:修改属性值
class Car:def __init__(self, model, year):self.model = modelself.year = yearcar = Car('Toyota', 2020)
print(car.model) # 输出: Toyotasetattr(car, 'model', 'Honda')
print(car.model) # 输出: Honda
- 示例 3:使用 setattr 动态设置属性
class DynamicAttributes:def __init__(self):passobj = DynamicAttributes()
attributes = {'attr1': 'value1', 'attr2': 'value2', 'attr3': 'value3'}for attr, value in attributes.items():setattr(obj, attr, value)print(obj.attr1) # 输出: value1
print(obj.attr2) # 输出: value2
print(obj.attr3) # 输出: value3
- 示例 4:与 getattr 配合使用
class Example:def __init__(self, name):self.name = nameexample = Example('Initial Name')# 使用 setattr 修改属性
setattr(example, 'name', 'Updated Name')# 使用 getattr 获取属性
name = getattr(example, 'name')
print(name) # 输出: Updated Name