0

これは、私が尋ねたい最後の質問へのフォローアップの質問です。ここで読むことができます:

Python の基本的な I/O を使用して Python ファイルを操作または作成しますか?

基本的に私は、Python が他の Python プログラム ソースを編集できるようにする最善の方法を求めていました。これは、結果を得るために遺伝的アルゴリズムまたはある種のバックプロップ ネットワークのいずれかに接続できるかどうかを調べたり、実験したりできるかどうかを確認するためです。

基本的に、答えの1つは、「=」、「if」などのすべてのpython演算子またはコードビットを、私/他のさまざまなプログラムで使用して他のpythonをつなぎ合わせたり編集したりできるクラスにすることを提案していますファイルを操作する手段として Python の基本的なファイル I/O を利用します。

クラスはそれぞれ、初期化時に独自の一意の ID を取得します。この ID は、ログ記録のために SQLite3 データベースに行番号、タイプなどとともに保存され、他のクラス/基本ファイル i/ 〇システム。

私の質問は次のとおりです。これは正気の仕事ですか?そうでない場合、何を変更または別の方法で行うことができますか? 私は価値のある何かに取り組んでいますか、それとも完全にばかげていますか? 明確化が必要な場合は、お尋ねください。私が行っていることが外部の情報源にとって合理的であるかどうか、または取引全体を再検討/廃棄する必要があるかどうかを知りたいです...

前もって感謝します。

4

1 に答える 1

0

コードの AST を変更してコードを生成しないでください。

import ast
p = ast.parse("testcode")

AST のドキュメント: http://docs.python.org/library/ast.html

コードの変更例: http://docs.python.org/library/ast.html#ast.NodeTransformer

例: (3*3 を 3+3 に変更)

from ast import *
tree = parse("print(3*3)") #parse the code
tree.body[0].value.args[0].op = Add() #modify multiplication to plus
codeobj = compile(tree,"","exec") # compile the code
exec(codeobj) #run it - it should print 6 (not 9 which the original code would print)

ところで、私は遺伝的アルゴリズムに興味があります。プロジェクトを開始する場合は、私がお手伝いします。

于 2012-07-07T08:50:45.320 に答える