Geo*_*mov 3 python code-generation eval argument-passing
我正在做遗传编程框架,我需要能够执行一些代表完整Python程序的字符串。我正在使用Python 2.7。我有一个配置类,其中定义了原始集。可以说
class Foo():
    def a(self,x):
        return x
    def b(self,y):
        return y
我正在使用 python 检查模块提取函数,并且我想创建一些包含导入和所有内容的可执行源代码。我最终得到了一个看起来像这样的字符串
import sys
def a(x,y):
    return x
def b(y):
    return y
def main(x,y)
    lambda x,y: a(b(y),a(x,y))
main(*sys.argv)
我的问题是我不知道如何将命令行参数传递给我正在运行的字符串eval()。如何将命令行参数传递给我想要运行的源文件eval()?
编辑:有数百万人,因此写入文件并不是一个好的选择。
编辑:我犯了一个错误。eval() 方法仅用于表达式而不是语句,因此使用 exec() 是正确的方法
eval("function_name")(arg1, arg2)
或者如果您有参数列表:
arguments= [arg1,arg2,arg3,something]
eval("function_name")(*arguments)
| 归档时间: | 
 | 
| 查看次数: | 10432 次 | 
| 最近记录: |