您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

沙箱/逐行运行python代码

沙箱/逐行运行python代码

取得最初的成功之后sys.settrace(),我最终切换到ast模块(抽象语法树)。我解析要分析的代码,然后在每次分配后插入新的调用,以报告变量名称及其新值。我还插入调用以报告循环迭代和函数调用。然后我执行修改后的树。

        tree = parse(source)

        visitor = TraceAssignments()
        new_tree = visitor.visit(tree)
        fix_missing_locations(new_tree)

        code = compile(new_tree, PSEUDO_FILENAME, 'exec')

        self.environment[CONTEXT_NAME] = builder
        exec code in self.environment

我正在使用像Bret Victor’s这样的实时编码工具,并且您可以在GitHub上查看我的工作代码,以及有关其在测试中的行为的一些示例。您还可以从项目页面上找到演示视频,教程和下载的链接

python 2022/1/1 18:44:48 有341人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶