python - 如何检查函数是在 IDLE 中运行还是从另一个函数/模块运行
问题描述
我知道你可以用模块做到这一点:
if __name__ == '__main__':
...
并且仅当模块本身在 IDLE 中运行时才运行,而不是在模块被导入时运行。但是,我想知道是否有办法检查一个函数是否在 IDLE 接口中手动运行,或者是否从另一个函数/模块调用它。如果有一种方法可以从函数内部执行此操作,那么您将如何执行此操作?
解决方案
您可以查看inspect.stack()
并尝试提取您感兴趣的信息;例如,我可以看到在 IDLE 中至少有 2 个帧往往来自idlelib/run.py
.
以下功能应该可以满足您的需求,但您也可以对其进行修改以满足您的需求。
import inspect
def is_inside_idle():
return any(frame for frame in inspect.stack()
if frame.filename.endswith('idlelib/run.py'))
推荐阅读
- marklogic - 基于语义三元存储的.NET MarkLogic API 开发
- python - dmatrices 看不到一列
- typescript - TypeScript - 带有“命名空间”的导出库
- javascript - Angular 6:在评论部分下显示评论
- jquery - jQuery:检查 div 的 CSS:left == 0
- jxbrowser - 请问jxbrowser 有时间计划支持Java Platform Module System 吗?
- android - 从图像 URL 将图标设置为地图中的标记
- ios - 我可以使用 AirWatch 管理我的应用程序和设备吗?
- webpack - 是否可以延迟 uglifyjs 插件的执行?
- python - 例外为 e。e 在调试器中不可见