Сравнение переменной и атрибута всех экземпляров класса
Подскажите, пожалуйста, как реализовать часть кода, связанную со сравнением значения переменной с определенным атрибутом каждого экземпляра класса и дальнейшей передачей другого атрибута экземпляра, первый атрибут которого равен переменной.
Есть некий класс 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 шт):
Можно занести в список все экземпляры, и далее перебирать их, как элементы списка
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)