|
0 / 0 / 0
Регистрация: 18.03.2018
Сообщений: 61
|
|
Как получить экземпляр класса по его значению поля, не используя перебор?27.03.2021, 18:32. Показов 4380. Ответов 11
Метки нет (Все метки)
Здравствуйте, я создал массив, в который помещаю экземпляры класса Member. У каждого экземпляра есть свой уникальный ID. Как я могу получить нужный мне экземпляр по значению этого ID, не используя при этом перебор всех экземпляров в массиве?
0
|
|
| 27.03.2021, 18:32 | |
|
Ответы с готовыми решениями:
11
Как получить экземпляр класса после его хранения в сессии? Создать экземпляр одного класса в Main, и передать его в экземпляр другого класса
|
|
5226 / 3472 / 1174
Регистрация: 21.03.2016
Сообщений: 8,299
|
|
| 27.03.2021, 18:54 | |
Сообщение было отмечено GavNoKoder как решение
Решение
соберите в словарь где ключ ID а значение экземпляр. список в любом случае нужно будет проверять в цикле даже не явно используя фильтр
3
|
|
|
5226 / 3472 / 1174
Регистрация: 21.03.2016
Сообщений: 8,299
|
||
| 27.03.2021, 19:04 | ||
|
Welemir1, а можно пример
0
|
||
|
5226 / 3472 / 1174
Регистрация: 21.03.2016
Сообщений: 8,299
|
|
| 27.03.2021, 19:27 | |
|
Welemir1, ну теперь все стало понятно
0
|
|
| 28.03.2021, 12:52 | ||
|
Semen-Semenich, Под циклом Вы как я понимаю имеете ввиду цикл, который потребуется только один раз для формирования словаря. После того, как словарь будет сформирован, циклы больше не понадобятся. Значение можно будет получать по ключу в словаре, который быстро находит нужный объект используя хеширование. GavNoKoder, Как я понимаю ID Вы формируете сами, так как создаваемый в питоне идентификатор id (адрес объекта в памяти) существует только на время сеанса.
0
|
||
|
5226 / 3472 / 1174
Регистрация: 21.03.2016
Сообщений: 8,299
|
|||||||
| 28.03.2021, 14:04 | |||||||
0
|
|||||||
|
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
|
||
| 28.03.2021, 14:17 | ||
tuple содержит хешируемые объекты (корректно называть их иммутабельными), но при этом это недостаточное требование: он может содержать также и нехешируемые объекты (мутабельные). В первом случае его можно использовать в качестве ключа словаря, во втором - нет./upd В обоих случаях хеш у кортежа есть, просто он кидает TypeError на нехешируемые объекты в своем представлении (на мутабельные объекты)./upd2 А вообще можно написать свою обертку над ID - переопределить def __hash__(self): и клади что хочешь.P. S. Насчет def __eq__(self, other): не уверен, но скорее всего и его тоже надо определить.
1
|
||
| 28.03.2021, 15:27 | |
|
Arsegg, Если в качестве ключа берутся не только целые числа и строки, и при этом есть не уверенность является ли объект хешируемым, как например когда в качестве ключа используется экземпляр класса, который может быть как хешируемым, так и не хешируемым, то в этом случае просто перед использованием объекта, нужно проверять его на хешируемость с помощью функции hash().
0
|
|
|
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
|
||
| 28.03.2021, 16:19 | ||
|
0
|
||
| 29.03.2021, 15:41 | |
|
Arsegg, Тогда, как вариант, Ваше предложение использовать обертку.
0
|
|
| 29.03.2021, 15:41 | |
|
Помогаю со студенческими работами здесь
12
Как создать экземпляр класса для нестатического поля DataGridView?
Как получить ссылку на экземпляр класса активности из ресивера Как обратится к переменной из другого класса, не создавая его экземпляр? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|