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的参数能知道他到底执行了啥。
你好!看起来您对这段对话很感兴趣,但您还没有一个账号。
厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。
有了你的建议,这篇帖子会更精彩哦 💗