Краткое описание: в этом уроке вы узнаете, как использовать функцию Python setattr()
для установки значения атрибуту объекта.
Введение в функцию Python setattr()
Функция
устанавливает setattr()
значение
атрибуту, заданному строкой name
объекта object
. Ниже показан синтаксис функции
:setattr()
Code language: Python (python)setattr(object, name, value)
Функция setattr()
имеет следующие параметры:
object
— объект, для которого вы хотите установить атрибут.name
— имя атрибута, которому вы хотите задать значение.value
— это значение, которое нужно установить.
На практике вы будете использовать функцию
в металлическом программировании. Пожалуйста, ознакомьтесь с классом Meta и его примером практического использования функции setattr()
.setattr()
Примеры использования функции Python setattr()
Рассмотрим несколько примеров использования функции setattr()
.
1) Использование функции Python setattr() для установки значения атрибуту объекта
В следующем примере определяется класс Person
и используется функция setattr()
для присвоения значения атрибуту age
:
Code language: Python (python)class Person: def __init__(self, name): self.name = name person = Person('John') setattr(person, 'age', 22) print(person.__dict__)
Output:
Code language: Python (python){'name': 'John', 'age': 22}
В этом примере класс Person
не имеет атрибута age
. Команда setattr()
добавляет атрибут age
к объекту person и устанавливает его значение равным 22.
Обратите внимание, что setattr()
изменяет только отдельный объект person
, а не класс Person
. Если вы создадите другой экземпляр класса Person, этот объект не будет иметь атрибута age. Например:
Code language: Python (python)class Person: def __init__(self, name): self.name = name person = Person('John') setattr(person, 'age', 22) print(person.__dict__) # {'name': 'John', 'age': 22} person2 = Person('Jane') print(person2.__dict__) # {'name': 'Jane'}
2) Использование Python setattr() для присвоения метода объекту
В следующем примере используется функция setattr()
для присвоения функции объекту:
Code language: Python (python)class Person: def __init__(self, name): self.name = name def say_hi(): return 'Hi' person = Person('John') setattr(person, 'greeting', say_hi) print(person.greeting())
Как это работает.
Во-первых, определите класс Person
:
Code language: Python (python)class Person: def __init__(self, name): self.name = name
Во-вторых, определите функцию say_hi()
:
Code language: Python (python)def say_hi(): return 'Hi'
В-третьих, создайте новый объект Person
и присвойте функцию say_hi
атрибуту greeting
объекта person
:
Code language: Python (python)person = Person('John') setattr(person, 'greeting', say_hi)
Наконец, вызовите функцию say_hi()
через атрибут greeting()
:
Code language: Python (python)print(person.greeting())
Вывод:
Code language: Python (python)Hi
Резюме
- Используйте функцию Python
setattr()
для установки значения атрибуту объекта.