【发布时间】:2025-12-03 19:50:02
【问题描述】:
我最近一直在尝试一些程序合成。 在这里,我正在生成代表有效函数的字符串。我当前的解决方案包括将字符串打印到标准输出,将它们存储到文件中,然后从其他地方调用该文件。 但是,函数可以直接导入给定的命名空间吗? 假设以下示例:
def sum2(x):
return sum(x)
print(sum2([1,2,3]))
sstring = """
def sum3(x):
return sum(x)
"""
eval(sstring)
print(sum3([1,2,3]))
是否有可能像第二部分(不起作用)? eval() 是否仅限于原始表达式?
【问题讨论】:
-
eval仅适用于表达式(评估为值的事物,即可以分配给变量的事物x = <some arbitrary expressions>),exec接受任意语句