在机器人控制系统中,将生成一个计划。该计划包含诸如“ graspobject()”,“ walkslow()”,“ standup()”之类的动作。在第一个原型中,使用了支持非常自我修改代码的Python语言。使用“检查”库,可以显示源代码,也可以在现有源文件中注入新命令。这意味着,如果机器人的计划发生变化,该软件将重写其程序的一部分。
txt=“print('hello world')”
newcode=compile(txt,"",'exec')
eval(newcode)
在大学环境中,将自我修改代码视为反模式,并且判断是正确的。机器人软件看起来不太清晰,很难修复错误。因此,我的想法是避免使用自我修改代码的模式,并以其他方式生成机器人计划。问题是,机器人计划需要像包含动作命令和for循环的普通计算机程序一样执行,但不应使用eval和compile来实现。哪种数据结构是正确的?