Сравнение переменной и атрибута всех экземпляров класса

Подскажите, пожалуйста, как реализовать часть кода, связанную со сравнением значения переменной с определенным атрибутом каждого экземпляра класса и дальнейшей передачей другого атрибута экземпляра, первый атрибут которого равен переменной.

Есть некий класс Tr, на основе него созданы экземпляры TDN10 и TDN16 (на деле их больше) с атрибутами name,p. Допусти ранее получено значение (a = 'ТДН-16'), равное атрибуту name одного из экземпляров.

Нужно создать функцию, которая будет сравнивать значение a и значение атрибута name каждого экземпляра. Затем функция должна передавать значение другого атрибута экземпляра (у которого выполняется a = name) в стороннюю переменную (список b).

В итоге должно получится b = [85]

class Tr:
    def __init__(self, name, p):
        self.name = name
        self.p = p


TDN10 = Tr('ТДН-10', 60)
TDN16 = Tr('ТДН-16', 85)
a = 'ТДН-16'
b = []


def adding():
    if a == Tr.name:
        b.append(Tr.p)


print(b)

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

Автор решения: CameL

Можно занести в список все экземпляры, и далее перебирать их, как элементы списка

class Tr:
    def __init__(self, name, p):
        self.name = name
        self.p = p


TDN10 = Tr('ТДН-10', 60)
TDN16 = Tr('ТДН-16', 85)
lst = [TDN10,TDN16]
a = 'ТДН-16'
b = []


def adding():
    for el in lst:
        if a == el.name:
            b.append(el.p)

adding()
print(b)
→ Ссылка