0

这是我要问的最后一个问题的后续问题,您可以在此处阅读:

使用 Python 的基本 I/O 来操作或创建 Python 文件?

基本上,我在寻求允许 Python 编辑其他 Python 程序源的最佳方法,目的是为了搞砸/实验,看看我是否可以将它们连接到遗传算法或某种反向传播网络以获得结果。

基本上,其中一个答案建议将每个 python 运算符或代码位(例如“=”、“if”等)放入类中,然后我/其他各种程序可以使用这些类来拼凑/编辑其他 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 回答