Найти - Пользователи
Полная версия: Интересует способ обращения к объектам
Начало » Центр помощи » Интересует способ обращения к объектам
1 2
Richigo
Изучение Python начал недавно, поэтому вопрос может быть не совсем правильно сформирован.

Допустим, имеется большое количество объектов (кнопки и прочее), различающиеся в названии только номером. И имеется некое условие, при выполнении которого должно происходить изменение конкретного объекта (допустим, цвет или надпись кнопки). Каким образом можно реализовать код так, чтобы во время проверки условия, выполнялось данное действие, без перебора всех объектов в коде?
py.user.next
Нужно найти этот объект, перебрав все объекты, и дать ему его отдельное имя. А потом, при проверке условия, обратиться к нему уже по этому отдельному имени.
Richigo
py.user.next
Нужно найти этот объект, перебрав все объекты, и дать ему его отдельное имя. А потом, при проверке условия, обратиться к нему уже по этому отдельному имени.

В том то и дело, что я не хочу захламлять код сотней строк на каждую потенциальную кнопку. Хотелось бы что-нибудь, на подобии перебора массива, но с объектами, иначе, при генерации n объектов, будет в n строк больше, чем нужно.
py.user.next
Приведи код и опиши, что ты пытаешься сделать.
Richigo
py.user.next
Приведи код и опиши, что ты пытаешься сделать.

Кода не , то что я имел в виду я описал выше, попробую немного подробнее описать.

Допустим, есть 100 кнопок button1..button100, и есть массивы данных, которые при определённых условиях должны взаимодействовать с определёнными кнопками, которые соответствуют позициям этих данных в массиве. То есть, хот5лось бы получить что-то на подобии перебора массива со ссылкой на ту кнопку (или другой объект), который, например, имеет такойже номер в названии, как и номер ячейки массива.

Это если углубиться в описание процесса, который я хочу видеть. Если бы можно было, например, получить ссылку на объект путём объединения в строку ключевого названия объекта и номера ячейки обрабатываемой в массиве, было бы вообще шикарно, но мне такого решения не известно, поэтому и пишу тут.
py.user.next
Richigo
Допустим, есть 100 кнопок button1..button100, и есть массивы данных, которые при определённых условиях должны взаимодействовать с определёнными кнопками, которые соответствуют позициям этих данных в массиве.
Сделай дополнительную структуру данных. В ней будут храниться пары <набор данных, кнопка>. Когда надо будет передавать данные из набора данных кнопке, то просто будет задействоваться эта структура данных, которая и будет хранить информацию о том, какой набор данных с какой кнопкой связан.
Richigo
py.user.next
Опять-таки, структура данных это лишние строки кода, даже, если они не используются постоянно, хотелось бы, что-то работающее автоматически без дополнительных структур
xam1816
Richigo
Кода не
Вы что программист -теоретик?
Richigo
Допустим, есть 100 кнопок button1..button100
Ну допустим есть список, в нём что-то находится по индексам, кнопка при нажатии возвращает индекс за ней закреплённый, кнопка0 - вернёт 0, объект = список[0
py.user.next
Richigo
Допустим, есть 100 кнопок button1..button100, и есть массивы данных, которые при определённых условиях должны взаимодействовать с определёнными кнопками, которые соответствуют позициям этих данных в массиве. То есть, хот5лось бы получить что-то на подобии перебора массива со ссылкой на ту кнопку (или другой объект), который, например, имеет такойже номер в названии, как и номер ячейки массива.
К номерам в названии нельзя привязываться. Когда такой код будет сделан, то будет невозможно переименовать кнопки в более удобные названия или вообще убрать названия у них и переместить их в массив какой-нибудь.

Richigo
Опять-таки, структура данных это лишние строки кода, даже, если они не используются постоянно
Это тебе кажется, что лишние строки кода - это проблема. Наоборот, проблема возникнет, когда у тебя будет короткий код в одну строчку. Когда надо будет что-то поменять или добавить, тебе придётся весь этот код стирать и писать заново с новой добавкой. Так надо будет делать каждый раз. А потом, когда таких кодов накопится несколько сотен штук, тебе придётся либо оставлять программу в старом виде всё время, либо всё время писать всю программу заново при любых мелких изменениях в её функциональности.

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

Такая же роль у этих отдельных структур, которые выглядят как бы лишними, но на самом деле спасут, когда потом надо будет количество кнопок увеличить или уменьшить. Никакие имена кнопок на данные и порядок этих данных влиять не будут, так как сопоставление кнопок и данных лежит на этой структуре и находится внутри неё в виде её секрета.
Richigo
xam1816
В данный момент, я хочу понять алгоритм, который можно реализовать в языке, так что, видимо, да)

Но вы немного не так поняли, на сколько я сам понял. Сам список должен содержать ссылки на кнопки, а не наоборот.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB