|
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
|
|
Класс FunctionType12.05.2020, 20:12. Показов 1005. Ответов 14
Метки нет (Все метки)
Пишу объектную систему. Столкнулся с проблемой: не могу написать класс для функции (FunctionType). По идее у неё должен быть метод __call__. Но веть этот метод и есть FunctionType. Я не понимаю, как я могу реализовать FunctionType, если FunctionType состоит из самой себя. Вообщем, очень запутанно.
0
|
|
| 12.05.2020, 20:12 | |
|
Ответы с готовыми решениями:
14
Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? Создайте класс точка, имеющая координаты. Класс эллипсов, и класс кругов. Определить иерархию типов
|
|
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
|
||
| 12.05.2020, 21:42 | ||
|
0
|
||
|
|
|||||||||
| 12.05.2020, 23:16 | |||||||||
0
|
|||||||||
|
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
|
||||||||||||
| 13.05.2020, 09:31 [ТС] | ||||||||||||
|
Вот мой код:
0
|
||||||||||||
|
Автоматизируй это!
|
|||
| 13.05.2020, 13:19 | |||
|
Добавлено через 2 минуты код ужасен, понятно что ты Pep-8 не читал, но это вот что? какой смысл? точки с запятой? реально?
0
|
|||
|
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
|
|
| 13.05.2020, 20:40 [ТС] | |
|
Welemir1, я
1
|
|
|
|
|
| 15.05.2020, 18:40 | |
|
0
|
|
|
Просто Лис
|
|
| 15.05.2020, 18:51 | |
|
Н-да, можно считать, что парсера нет. Сначала надо написать токенайзер (1), который будет возвращать токены (грубо говоря, тип токена и значение), потом порисовать синтаксические диаграммы (2), чтобы понимать, что написано в коде (например - вызов функции).
Получим парсер/валидатор кода. А нарастить из этого интерпретатор (3) - легко. Спарсили объявление переменной - сохранили в памяти. Увидели объявление функции - распарсили её, тело функции спраятали в отдельно поддерево. Увидели вызов функции - нашли в дереве - вызвали. Итого 3 шага.
0
|
|
|
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
|
|
| 16.05.2020, 09:35 [ТС] | |
|
Рыжий Лис, я всё это уже сделал, и функции реализовал
0
|
|
| 16.05.2020, 11:26 | ||||||||
|
При появлении классов нового стиля "тип" и "класс" стали синонимами.
А вообще я не понимаю, зачем Вы этим занимаетесь. Если хотите создать свой ЯП, отличный от питона, скажем ориентированный на какую то узкую область деятельности, то писать нужно на C#. Или же модифицировать питон под какую либо узкую область деятельности способом, которым я описал выше. Если Вы просто пытаетесь таким образом лучше освоить ООП, то это проще делать решая какую нибудь реально полезную задачу, которая будет полезна Вам в работе или в быту. Я например, для практики в питоне, написал для себя на питоне, используя ООП, телефонный справочник и реально пользуюсь им, что бы быстро находить нужные телефоны.
0
|
||||||||
|
Просто Лис
|
|||||||
| 16.05.2020, 11:29 | |||||||
|
ТС, определённо делает что-то не так. Для начала надо определить структуру узла в дереве разбора, и уже там хранить спарсенные элементы. Допустим, для простоты у нас есть такой код (на собственном ЯП):
foo, с типом "функция" и списком входных аргументов (или можно пока реализовать функции без агруметов).В 4 строке - поиск идентификатора и вызов функции.
0
|
|||||||
|
Просто Лис
|
|||||||||||
| 16.05.2020, 13:03 | |||||||||||
|
Кликните здесь для просмотра всего текста
Добавлено через 10 минут
0
|
|||||||||||
| 16.05.2020, 13:03 | |
|
Помогаю со студенческими работами здесь
15
Наследование (создать класс, который наследует базовый класс и производный класс от базового) Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами Разработать абстрактный класс класс Point для задания координаты точки на плоскости. Выбирая этот класс в качестве базо Класс: Разработать абстрактный класс класс Point для задания координаты... Класс: Создать базовый класс Polygon и производный класс Triangle Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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(), которая. . .
|