Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить