Python setattr

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

Введение в функцию Python setattr()

Функция setattr() устанавливает значение атрибуту, заданному строкой name объекта object. Ниже показан синтаксис функции setattr():

setattr(object, name, value)
Code language: Python (python)

Функция setattr() имеет следующие параметры:

  • object — объект, для которого вы хотите установить атрибут.
  • name — имя атрибута, которому вы хотите задать значение.
  • value — это значение, которое нужно установить.

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

Примеры использования функции Python setattr()

Рассмотрим несколько примеров использования функции setattr().

1) Использование функции Python setattr() для установки значения атрибуту объекта

В следующем примере определяется класс Person и используется функция setattr() для присвоения значения атрибуту age:

class Person: def __init__(self, name): self.name = name person = Person('John') setattr(person, 'age', 22) print(person.__dict__)
Code language: Python (python)

Output:

{'name': 'John', 'age': 22}
Code language: Python (python)

В этом примере класс Person не имеет атрибута age. Команда setattr() добавляет атрибут age к объекту person и устанавливает его значение равным 22.

Обратите внимание, что setattr() изменяет только отдельный объект person, а не класс Person. Если вы создадите другой экземпляр класса Person, этот объект не будет иметь атрибута age. Например:

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'}
Code language: Python (python)

2) Использование Python setattr() для присвоения метода объекту

В следующем примере используется функция setattr() для присвоения функции объекту:

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())
Code language: Python (python)

Как это работает.

Во-первых, определите класс Person:

class Person: def __init__(self, name): self.name = name
Code language: Python (python)

Во-вторых, определите функцию say_hi():

def say_hi(): return 'Hi'
Code language: Python (python)

В-третьих, создайте новый объект Person и присвойте функцию say_hi атрибуту greeting объекта person:

person = Person('John') setattr(person, 'greeting', say_hi)
Code language: Python (python)

Наконец, вызовите функцию say_hi() через атрибут greeting():

print(person.greeting())
Code language: Python (python)

Вывод:

Hi
Code language: Python (python)

Резюме

  • Используйте функцию Python setattr() для установки значения атрибуту объекта.

Оцените статью
devanswers.ru
Добавить комментарий