моя цель проста, но чрезвычайно сложна из-за ее простоты. Создание программы, которая может оптимизировать себя. Пока я сделаю простую программу, чтобы исследовать ее возможности. К сожалению, я новичок в интерпретаторах и python. Поэтому я хотел бы попросить совета. Вот шаги моей первой программы.Использование интерпретатора Python для создания программы, которая может развиваться
Программа Python Interpreter загружает код из файла (например, Test0) и запускается.
Код Test0 предназначен для печати «Hello».
'Hello' печатается.
Test0 код останавливается.
Python Interpreter берет печатное слово и скрежет его.
Затем интерпретатор Python редактирует код из Test0 для печати скремблированного слова .
В следующий раз, когда Test0 запускается, он печатает скремблированное слово.
Попробуйте использовать команду execfile() для изменения файла конфигурации. Таким образом, вы сохраняете свой код и свою оптимизацию отдельно. https://docs.python.org/2/library/functions.html вы можете сделать что-то вроде: конфига = {} ExecFile ("something.py", конфигурация) конфигурации будет содержать словарь глобальных переменных после выполнения файла, и затем вы можете вернуться к something.py. Это, однако, не рекомендуется для каких-либо производственных кодов. – sakurashinken
Ну в итоге я буду работать с более чем переменными, но целыми строками кода. Поэтому в качестве практики я хотел сделать что-то простое, как изменение переменной, а не изменение кода, но используя тот же метод, что и изменение кода. – Kuroyuki
Execfile выполнит python в файле конфигурации. Затем вы можете использовать родительскую программу для вычисления нового вывода и записать обратно в файл конфигурации. Возможно, вы захотите также провести исследование самонастраивающегося кода ... его склонность к ошибкам, и более предпочтительный подход - это машинное обучение, где вы определяете целевое поведение, измеряете расстояние между этой целью и фактическим поведением кода и затем измените поведение программы на основе этой метрики. – sakurashinken