Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个扩展类bdb.Bbd,用于分析 Python 3 代码。现在,我还需要在程序逐步执行时修改一些变量值。
bdb.Bbd
在函数之外,我可以通过修改frame.f_locals字典来做到这一点:
frame.f_locals
frame.f_locals['x'] = 2
如果不使用这个ctypes问题中提到的技巧,我无法弄清楚如何在函数内部执行此操作。我在Pyodide中运行 Python 3,不幸的是它还不支持。ctypes
ctypes
应该可以按如下方式进行。定义一个 Javascript 函数:
function frameLocalsToFast(frame){ pyodide._module._PyFrame_LocalsToFast(frame.$$.ptr, 0); // Hopefully avoid memory leak frame.destroy(); }
然后导入frameLocalsToFastPython 并在您想要更新框架时调用它。
frameLocalsToFast