setattr 是 Python 的内置函数,用于设置对象属性的值。通过 setattr 函数,可以动态地为对象添加或修改属性,而无需直接访问对象的属性。
语法
setattr(object, name, value)
- object:要设置属性的对象。
- name:属性的名称,以字符串形式提供。
- value:要设置的属性值。
示例
下面是一些使用 setattr 的示例:
- 示例 1:基本用法
class Person:
pass
person = 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 = model
self.year = year
car = Car('Toyota', 2020)
print(car.model) # 输出: Toyota
setattr(car, 'model', 'Honda')
print(car.model) # 输出: Honda
- 示例 3:使用 setattr 动态设置属性
class DynamicAttributes:
def __init__(self):
pass
obj = 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 = name
example = Example('Initial Name')
# 使用 setattr 修改属性
setattr(example, 'name', 'Updated Name')
# 使用 getattr 获取属性
name = getattr(example, 'name')
print(name) # 输出: Updated Name