我目前正在尝试用 Python 制作一个自修改算法。
为此,我有一个包含算法的字符串,我使用另一个函数中的 exec(algorithm) 函数运行该算法。
我想要运行的算法如下所示:
if (a):
do_something()
return
if (b):
do_something_else()
return
...
问题是“exec()”不像一个函数,所以“return”不会这样工作。
当然,当我将算法字符串修改为:
def function ():
if (a):
do_something()
return
if (b):
do_something_else()
return
...
function()
但我想要的是在exec()中替换“return”的关键字。 只退出 exec() 的关键字(不是整个程序),如果它存在
您可以使用 sys.exit() 函数从 exec() 函数中退出,而无需终止整个程序。您只需要捕获 sys.exit() 引发的 SystemExit 异常并适当地处理它。
导入系统
def run_algorithm(算法): 尝试: 执行(算法) 除了系统出口: 通过
算法 = ''' 如果一个: print("a 为真") 系统退出() 如果乙: print("b 为真") 系统退出() '''
run_algorithm(算法)