python - Python `inspect.stack()` 返回在 REPL 中缺少`code_context` 的 FrameInfo 对象
问题描述
使用 Python 的 REPL/交互式提示时,返回的对象inspect.stack()
总是.code_context
设置为None
.
从 .py 文件中执行的相同代码按预期在堆栈跟踪中逐行返回代码。
>>> import inspect
>>> print(inspect.stack()[0].code_context)
None
在 .py 文件中执行的相同代码打印:
['print(inspect.stack()[0].code_context)\n']
解决方案
在此处发布来自@jasonharper 的评论作为答案。谢谢!
模块可以显示源代码的唯一方法是
inspect
代码是否来自它可以访问的文件。在交互式提示下键入的源代码一经解析就会被丢弃,根本无法inspect
访问它。– @jasonharper
推荐阅读
- mysql - 在列 MySQL 查询中插入随机数
- javascript - WebGL 对象是否被垃圾收集?
- ios - Swift UIRefresh Control 在 UITableView 中拖动刷新会导致应用崩溃
- maven - Spring Data ES 迁移后:IllegalArgumentException: NamedWriteable is already registered for [...], cannot register [...]
- c# - 错误案例的 API 设计响应对象
- laravel - 如何同步包含产品数据(图片、价格)的 Firebase 数据库以显示在 Laravel 网站上?
- python - 在 Python 中导入变量,作为旧主题的新主题对我不起作用
- android - 数组适配器中的 getcount() 如何在不显式返回数组大小的情况下返回值?
- c# - WPF - 按钮中显示的不同信息。可以使用按钮控件还是需要 CustomControl?
- c# - 无法将 IIS 托管应用程序写入 Ubuntu 中的共享文件夹,但 IISExpress 没有问题