|
5 / 5 / 1
Регистрация: 19.05.2018
Сообщений: 200
|
|||||||||||
ООП. Как правильнее сделать?09.12.2018, 18:35. Показов 663. Ответов 1
Метки нет (Все метки)
Только начал изучать этот ЯП. До этого с ООП не сталкивался, только процедурный подход.
В python классы являются объектами. И, если, например, я объявляю класс вроде своего нестандартного виджета. В дальнейшем я смогу создать точно-такой же, просто унаследовав его от родителя и передав нужные параметры? Меня сбивает с толку, что здесь объекты визуально прописываются на форме. И тогда непонятно зачем плодить классы, если мы им будем передавать кучу параметров, которые будут "кастомизировать" элемент. Т.е., допустим, я создал класс окна программы, которых по задаче предусмотрено 3. Я изначально настроил его свойства вроде геометрии, свойства sizeable, цвет фона, при создании считал разрешение экрана клиента, чтобы вычислить оптимальные координаты отрисовки, кнопки далее и.т.д. Т.е. КАК мне создать еще 2 таких же окна (допустим после нажатия кнопки на форме)? Смотрел кучу примеров по реализации классов, но не могу разобраться как это "натянуть" на мою задачу. Допустим, в этом участке кода, я создаю "свою" кастомизированную форму главного окна, которое я захочу создавать, передавая параметры конструктору.
Я понял как это сделать через функцию, к-рую можно биндить к кнопке. Но это сработает для 1 окна. Что делать, если окон будет не 3, а 10?
0
|
|||||||||||
| 09.12.2018, 18:35 | |
|
Ответы с готовыми решениями:
1
Архитектура приложения. Как правильнее сделать в моем случае? Сделать игру на Python, используя как можно больше ООП Атрибуты класса в ООП. Как сделать атрибут одним для всех экземпляров? |
|
|
|||||
| 10.12.2018, 18:04 | |||||
|
Объект - это экземпляр класса, который сидит у вас в памяти программы. Чтобы создать много объектов - вы просто вызываете много раз конструктор, наследование тут не при чём. Все созданные вами объекты будут созданы по одному описанию. Я не разбираюсь в Tk(), но вижу, что вы не создаёте свой кастомный класс, унаследованый от стандартного виджета. У вас в коде этого нет. Tk() - это вряд ли вообще виджет, это, скорее всего, класс для всего Tk-шного приложения, который у вас будет в единственном экземпляре (это называется синглтон).
1
|
|||||
| 10.12.2018, 18:04 | |
|
Помогаю со студенческими работами здесь
2
ООП как будет правильнее а как будет работать быстрее Как правильнее сделать? Как правильнее сделать адаптив? Как сделать лучше (правильнее)? Подскажите как правильнее сделать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|