setattr
Функция setattr() задаёт значение атрибута объекта.
Синтаксис
setattr(object, name, value)
Аргументы
- object:
- Что означает: Объект, атрибут которого нужно изменить.
- Возможные значения: Любой объект.
- name:
- Что означает: Имя атрибута (строка).
- Возможные значения: Любая строка.
- value:
- Что означает: Значение, которое нужно присвоить атрибуту.
Возвращаемое значение
Ничего не возвращает. Изменяет объект object, задавая значение его атрибуту.
Примеры использования
class MyClass:
pass
obj = MyClass()
setattr(obj, "attr", 42)
print(obj.attr) # Вывод: 42
Эквивалентный код
def pyplanet_setattr(obj, name, value):
obj.__dict__[name] = value
Частые ошибки
Попытка изменить атрибут, недоступный для записи:
class MyClass: __slots__ = [] obj = MyClass() setattr(obj, "attr", 42) # Ошибка: AttributeError
Часто задаваемые вопросы
- Можно ли использовать setattr для создания новых атрибутов? Да, если это разрешено классом объекта.
- Что произойдёт, если атрибут уже существует? Его значение будет перезаписано.