Получить атрибут объекта по его имени

Пожалуйста, подскажите как это сделать правильно?

sel_list = ['Период', 'Доход']

query = connects.V83.NewObject("Query", query)  # Выполняем запрос к базе 1С
sel = query.Execute().Choose()
while sel.next():
      print(sel.Период) # Рабочий вариант но не подходит
      print(sel.Доход)  # Так как вручную указывать не вариант
      print(sel.sel_list[0] # Нужен примерно такой вариант
      print(sel.sel_list[1]

Я понимаю, что пытаюсь к объекту дописать строку но мне это очень нужно. Как это правильно сделать??


Ответы (3 шт):

Автор решения: Интик
#дано
class c():
    def __init__(self):
            self.period=55
            self.dohod=77
sel=c()
sel_list=['period','dohod']
#само решение
for item in sel_list:
    stroka='print(sel.{})'.format(item)
    eval(stroka)

протестрировал, работало.

→ Ссылка
Автор решения: Danis
cmd = 'print(sel.{})'.format(sel_list[0])
eval(cmd) 

Но знайте, Функция eval это опасная штука

→ Ссылка
Автор решения: Xander

Ох уж эти советчики. Не слушайте тех, кто советует использовать eval в ситуации, когда есть нормальное решение.

print(getattr(sel, sel_list[0]))
→ Ссылка