Функция setattr() в Python: создание атрибута объекта

Мы знаем, что можно присвоить значение переменной класса через конструктор и объектную функцию. Но помимо этого есть еще один альтернативный способ: метод setattr().

Что такое функция setattr() в Python?

Функция setattr() в Python — это встроенная функция, которая создает и устанавливает значение данного атрибута объекта класса. Метод setattr() может присвоить None любому атрибуту объекта и может использоваться для инициализации нового атрибута объекта.

Синтаксис

Аргументы

Функция использует следующие три параметра:

  1. object: это объект, чей атрибут должен быть установлен или изменен.
  2. name: это строка, содержащая имя устанавливаемого атрибута.
  3. value: значение, которое должно быть установлено.

Возвращаемое значение

Функция ничего не возвращает. Таким образом, возвращаемое значение равно None.

Программа, показывающая, как работает setattr()

См. следующий код.

Выход:

В приведенном выше примере мы видим, что мы изменили значение номера рулона с 24 на 20 с помощью метода setattr(), и после этого, когда мы его вызываем, мы можем увидеть измененное значение.

Когда атрибут имени не найден и для него установлено значение «None»

См. следующий код.

Выход:

В приведенном выше примере мы установили значение атрибута name равным None, поэтому мы можем узнать, что мы также можем присвоить значение None.

С другой стороны, как мы видим, в классе Student нет атрибута section, но мы использовали его в setattr().

В данном случае произошло следующее: функция setattr() сама создает новый атрибут, если этот атрибут отсутствует в классе, а затем присваивает ему заданное значение.

Python setattr() с пользовательским вводом

Мы используем функцию Python input(), чтобы получить ввод от пользователя и передать это значение функции setattr().

См. следующий код.

Выход:

Исключение функции setattr()

Мы можем создать атрибут только для чтения, используя функцию property или декоратор свойств в объекте.

В этом случае, если мы попытаемся установить значение атрибута с помощью функции setattr(), мы получим AttributeError: невозможно установить исключение атрибута.

См. следующий код.

Выход:

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python