如何在 JavaScript 中获取所有 pyodide 全局变量

How to get all pyodide globals in JavaScript

根据api docs,pyodide提供了一种通过pyodide.globals.x获取用户定义的函数或变量的方法作为示例(其中x由用户定义)。我希望能够一次获得所有全局变量,但文档中没有关于此的内容。我想知道是否有一种聪明的方法可以做到这一点?

编辑:

如果您在开发人员工具中键入 pyodide.globals,则没有对 x 的引用,但如果您键入 pyodide.globals.x(它已定义),您将获得该值。这是如何工作的?

pyodide.globals 是一个 PyProxy 对象,它将 Python globals() 字典暴露给 JavaScript。所有属性访问都将代理到 python 字典, 有关详细信息,请参阅 documentation

获取所有全局变量的最简单方法是调用 pyodide.globals.toJs(),这将 return 一个包含所有条目的 Map 对象。请注意,这目前仅适用于 pyodide 的开发版本或即将发布的 0.17.0 版本。