这是我要问的最后一个问题的后续问题,您可以在这里阅读:
Using Python's basic I/O to manipulate or create Python Files?
基本上我要求允许Python编辑其他Python程序源的最佳方法,以便绕过/试验,看看我是否可以将它们连接到遗传算法或某种反向网络来获取结果。
基本上,其中一个答案建议将每个python运算符或代码位(例如'=','if'等等)放入类中,然后我可以使用/其他各种程序将它们拼凑在一起/编辑其他python文件,利用Python的基本文件i / o作为操作方法。
每个类在初始化时都会获得自己的唯一ID,这些ID将与SQLite3数据库中的行号,类型等一起存储以供日志记录,并且将由其他类/基本操作文件i / o系统。
我的问题是:这是一项理智的任务吗?如果没有,我可以改变或做些什么?我会做一些值得的事情,还是完全愚蠢的?如果你需要澄清请问,我想知道我所做的事情对于外部来源是否合理,或者我是否应该重新考虑/废弃整个交易......
提前致谢。
答案 0 :(得分: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)
BTW,我对遗传算法很感兴趣。
如果你开始一个项目,我可以帮助你。