Выбор экземпляра класса из списка по свойству этого экземпляра
Существует некоторый класс пользователя User, который является дочерним классом класса службы пользователей UserCore. Информация о пользователях хранится в JSON-файлах, которые читаются при помощи функции в классе службы системы пользователей, затем эта функция создаёт экземпляр класса пользователя на основании данных, прочитанных из JSON и заталкивает его в список users.
Класс User имеет, среди прочего, логический атрибут current, который присваивается экземпляру класса пользователя во время события входа в систему и отбирается при выходе.
После того, как событие входа в систему произошло и атрибут current присвоен текущему экземпляру пользователя, нужно удалить из списка users все экземпляры класса пользователя, не имеющие положительного атрибута current. Как это сделать?
Я знал, что для этого нужно создать копию списка, при создании выбрав те экземпляры, что подлежат удалению, и поробовал сделать списковое включение:
def cleanUserList(self, core):
self.checker = [(not User.current) for User in self.users]
print(self.checker) # проверям выполнение команды
Вывод: [False, True]
Моё списковое включение вместо списка всех экземпляров класса User с отрицательным current выводит мне исходный список со значениями атрибутов current всех экземпляров подряд. Как правильно сделать нужное мне списковое включение?
Ответы (1 шт):
Как-то так можно отобрать нужных пользователей:
[User for User in self.users if User.current>0]