2015-03-04 1 views
0

моя цель проста, но чрезвычайно сложна из-за ее простоты. Создание программы, которая может оптимизировать себя. Пока я сделаю простую программу, чтобы исследовать ее возможности. К сожалению, я новичок в интерпретаторах и python. Поэтому я хотел бы попросить совета. Вот шаги моей первой программы.Использование интерпретатора Python для создания программы, которая может развиваться

Программа Python Interpreter загружает код из файла (например, Test0) и запускается.

Код Test0 предназначен для печати «Hello».

'Hello' печатается.

Test0 код останавливается.

Python Interpreter берет печатное слово и скрежет его.

Затем интерпретатор Python редактирует код из Test0 для печати скремблированного слова .

В следующий раз, когда Test0 запускается, он печатает скремблированное слово.

+1

Попробуйте использовать команду execfile() для изменения файла конфигурации. Таким образом, вы сохраняете свой код и свою оптимизацию отдельно. https://docs.python.org/2/library/functions.html вы можете сделать что-то вроде: конфига = {} ExecFile ("something.py", конфигурация) конфигурации будет содержать словарь глобальных переменных после выполнения файла, и затем вы можете вернуться к something.py. Это, однако, не рекомендуется для каких-либо производственных кодов. – sakurashinken

+0

Ну в итоге я буду работать с более чем переменными, но целыми строками кода. Поэтому в качестве практики я хотел сделать что-то простое, как изменение переменной, а не изменение кода, но используя тот же метод, что и изменение кода. – Kuroyuki

+0

Execfile выполнит python в файле конфигурации. Затем вы можете использовать родительскую программу для вычисления нового вывода и записать обратно в файл конфигурации. Возможно, вы захотите также провести исследование самонастраивающегося кода ... его склонность к ошибкам, и более предпочтительный подход - это машинное обучение, где вы определяете целевое поведение, измеряете расстояние между этой целью и фактическим поведением кода и затем измените поведение программы на основе этой метрики. – sakurashinken

ответ

0

Ну, вы могли бы хранить «test0» вывод в файл (Result.txt), а также использовать другой скрипт для редактирования «test0», запуск «Test1» редактировать «test0» и заменить «привет» для вывода (который будет сохранен в файле result.txt)

Here - это руководство по работе с файлами в Python. Вы можете использовать это, чтобы редактировать не только строки, но и сам код, добавление, редактирование и удаление операторов, например.

Смежные вопросы