Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpCgSPN 82 of 174 menu
◀ ▶

Запись свойства по имени в ООП в Python

К свойствам объектов можно не только обращаться по имени из переменной, но и записывать в них значения. Давайте посмотрим, как это можно сделать. Пусть у нас есть вот такой класс User:

class User: def __init__(self, name, surn): self.name = name self.surn = surn

Давайте создадим объект этого класса:

user = User('john', 'smit')

Пусть у нас есть переменная, которая хранит имя свойства:

prop = 'name'

Давайте теперь используем значение переменной в качестве имени свойства и запишем в него новое значение. Для этого применим функцию setattr:

prop = 'name' setattr(user, prop, 'eric') print(user.name) # выведет 'eric'

Имя свойства может храниться в элементе списка:

props = ['name', 'surn'] setattr(user, props[1], 'smith') print(user.surn) # выведет 'smith'

Имя может быть в элементе словаря или возвращаться функцией. Во всех случаях запись делается через setattr:

props = {'prop1': 'name'} setattr(user, props['prop1'], 'john') def get_prop(): return 'surn' setattr(user, get_prop(), 'smit')

Дан следующий класс:

class Employee: def __init__(self, name, salary): self.name = name self.salary = salary

Даны следующие переменные:

prop1 = 'name' prop2 = 'salary'

Создайте объект класса Employee, а затем запишите в его свойства новые значения через приведенные переменные.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить