![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
flagist0 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 29.10.2007 Репутация: нет Всего: нет |
Пишу простенький генератор сишного кода. Выбор текущего действия происходит так:
В случае генерации блока {}, метод gen_block() вызывает gen_code_string() для генерации содержимого блока, получается рекурсия. Как видно, действие выбирается случайным образом, поэтому вероятность ухода в глубокую рекурсию невелика, но это почему-то происходит сразу же. Думал над двумя вариантами: 1. Сгруппировать действия по убыванию необходимости частого появления, потом изменить функцию распределения. Но как? 2. Передавать в метод текущую глубину рекурсии, при необходимости выходить. Это моя первая программа на Python, прошу сильно не бить. |
|||
|
||||
flagist0 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 29.10.2007 Репутация: нет Всего: нет |
Второй вариант сработал. Хотя первый вариант был бы предпочтительнее (дал бы очень приятный сайд-эффект правильного распределения видов кода), этот тоже работает. Вопрос закрыт. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |