Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
单步跟踪的时候,跟踪到 tools/safe_eval.py 的 242 行 return eval(test_expr(expr,_SAFE_OPCODES, mode=mode), globals_dict, locals_dict)这个 eval 调用就跟不过去,直接跳飞了。调用栈是这样的[attachimg=1]中间跑到 [attachimg=2]不知道哪里去了,但是 我需要跟踪的东西就在这里面咋回事呢 ?
自己学习了一下,test_expr(expr,_SAFE_OPCODES, mode=mode) 返回的是一个 Python 代码对象 (code object) ,就是 一小段 python 代码编译的结果。这“一小段 python 代码”就是各种 domain,报表中的表达式,系统里所有允许输入的python 代码而 eval 就是负责执行这个编译后的 代码对象,所以,单步跟踪进入 eval 后就飞掉了。但是这 代码对象里面的 代码,还是 要调用 系统中的模块。各种对象,各种方法,这之间 怎么 关联起来的?待继续学习哪位大大 指点一下 ?
eval 是python的内置方法吧。你可以看输入到eval的参数能知道他到底执行了啥。