Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗pyOpCgPNV 81 of 174 menu
◀ ▶

Имя атрибута из переменной в ООП в Python

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

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

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

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

Выведем значение его атрибута:

print(user.name) # выведет 'john'

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

prop = 'name'

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

prop = 'name' print(getattr(user, prop)) # выведет 'john'

Давайте теперь посмотрим, как обратиться к атрибуту объекта по имени из элемента списка:

props = ['name', 'surn'] print(getattr(user, props[0])) # выведет 'john'

Обратимся к атрибуту объекта, имя которого хранится в элементе ассоциативного массива:

props = {'prop1': 'name', 'prop2': 'surn'} print(getattr(user, props['prop1'])) # выведет 'john'

Имя атрибута объекта также можно взять из функции:

def get_prop(): return 'name' print(getattr(user, get_prop())) # выведет 'john'

Имя атрибута может быть даже атрибутом другого объекта:

class Prop: def __init__(self, value): self.value = value prop = Prop('name') print(getattr(user, prop.value)) # выведет 'john'

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

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

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

prop1 = 'name' prop2 = 'salary'

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

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

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

Дан список:

arr = ['name', 'salary', 'position']

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

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

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

Дан словарь:

arr = { 'prop1': 'name', 'prop2': 'salary', 'prop3': 'position' }

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

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

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

Даны следующие функции:

def get_prop1(): return 'name' def get_prop2(): return 'salary'

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

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

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

Дан также такой класс:

class Data: def __init__(self): self.prop1 = 'name' self.prop2 = 'salary' self.prop3 = 'position'

Выведите атрибуты объекта Employee через объект Data.

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