Как получить список объектов класса?
У меня есть класс в котором имеются объекты, есть ли возможность получить список этих объектов, не считая способа когда я сам создаю список и добавляю объекты в него?
Пример
class Example(ExampleAbstract):
obj1 = '1000321'
obj2 = 10
obj3 = SomethingClass.something_method
Ответы (1 шт):
Автор решения: Xander
→ Ссылка
Все аттрибуты класса можно увидеть с помощью специального метода __dict__. Правда, туда кроме явно созданных вами аттрибутов попадут и системные аттрибуты, но их легко отфильтровать, т.к. их название начинается и заканчивается двойным подчёркиванием:
print(
{k: v for k, v in Example.__dict__.items()
if not (k.startswith('__') and k.endswith('__'))
})
UPD на комментарий:
Имея название аттрибута, вы всегда можете как получить его значение
value = getattr(Example, k)
print(value)
так и заменить его на новое значение:
setattr(Example, k, new_value_obj)