将Python运算符和函数放入类的最佳方法?

时间:2012-07-07 05:45:31

标签: python io code-generation

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

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系统。

我的问题是:这是一项理智的任务吗?如果没有,我可以改变或做些什么?我会做一些值得的事情,还是完全愚蠢的?如果你需要澄清请问,我想知道我所做的事情对于外部来源是否合理,或者我是否应该重新考虑/废弃整个交易......

提前致谢。

1 个答案:

答案 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,我对遗传算法很感兴趣。 如果你开始一个项目,我可以帮助你。