|
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
|
|
Класс FunctionType12.05.2020, 20:12. Показов 1013. Ответов 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): Загрузка 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 и по. . .
|
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|