python 模块会被导入两次吗?

2024-02-06

如果我有一个运行的文件import math,还有第二个文件import mathAND 导入第一个文件,是否加载math模块在内存中两次?


当你这样做时import math它被导入并放入sys.modules。接下来你做import math检查是否math is in sys.modules并从那里获取。

所以它只被导入一次。

http://effbot.org/zone/import-confusion.htm http://effbot.org/zone/import-confusion.htm

当Python导入模块时,它首先检查模块注册表 (sys.modules) 查看模块是否已导入。如果那是 在这种情况下,Python 按原样使用现有的模块对象。

否则,Python 会执行以下操作:

  1. 创建一个新的空模块对象(这本质上是一个字典)
  2. 将该模块对象插入 sys.modules 字典中
  3. 加载模块代码对象(如有必要,请先编译模块)
  4. 在新模块的命名空间中执行模块代码对象。代码分配的所有变量都可以通过模块对象使用。

这 意味着导入已经导入的模块相当便宜; Python 只需要在字典中查找模块名称即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 模块会被导入两次吗? 的相关文章

随机推荐

  • Sass 加载器和 webpack 4

    如何在 webpack 4 中使用 sass 加载器 我读了很多关于这方面的内容 大多数网站建议使用 ExtractTextPlugin 但 ExtractTextPlugin 不适用于 webpack 4 我写了以下内容webpack c
  • 将 IplImage IPL_DEPTH_32S 转换为 QImage Format_RGB32 的最快方法

    将 IplImage IPL DEPTH 32S 转换为 QImage Format RGB32 最快的方法是什么 我需要从摄像头捕捉图片并将其显示在表格上 频率为每秒 30 帧 我尝试使用 QImage 构造函数 QImage qImag
  • jquery触发事件

    我们如何在活动对象上调用触发单击事件 continue live keypress function if e which 32 e which 13 this trigger click 当我按按钮上的 Enter 时 它会进入 if 块
  • Xcode 4.5 + UIScrollView:看不到支柱和弹簧(OSX 10.8 Mountain Lion)

    免责声明 iOS 开发全新 对我轻松一些 在 Xcode 4 5 中遇到了一个有趣的情况 我的尺寸检查器看起来像这样 和我根本看不到支柱和弹簧区域 真正奇怪的部分是 当我点击连接检查器之类的东西时 我确实看到了支柱和弹簧区域 但只看到了一瞬
  • 如何在不同存储库中的多个解决方案之间共享源代码库?

    我有一个公共库 我想在几个解决方案之间共享 该库存储在不同的 github 存储库中 我们将共享库放在单独的 GitHub 存储库中并创建了 nuget 包 可以将其安装在每个所需的项目 解决方案中 缺点是更改库中的代码涉及几个步骤 更改代
  • HTML5 Web 存储抽象库

    根据我对 HTML5 中 Web 存储的了解 有许多不同的存储选项 不同浏览器的支持也不同 是否有任何流行的库用于在 HTML5 应用程序中抽象 Web 存储 有几个基于 YUI 的库用于抽象底层存储 YUI 2 存储实用程序 http d
  • 以编程方式获取 ec2 定价?

    有没有办法以编程方式获取 AWS 定价 每种实例类型的每小时成本 S3 上每月每 GB 存储的成本等 另外 有成本监控工具吗 例如 是否有一种工具可以按小时报告您的 EC2 实例使用情况 而不是每月 亚马逊就是这么做的 提前致谢 UPDAT
  • 在 WebRequest 中强制进行基本身份验证

    我正在集成将使用的网络服务 HTTP POST 用于请求和检索数据 远程服务器 需要根据 RFC 2617 进行基本身份验证 我的身份验证尝试失败了 它失败的原因是 即使我将 NetworkCredential 对象附加到 HttpWebR
  • Angular 6 ng build --prod 错误“错误错误:ngIfElse 必须是 TemplateRef,但收到‘true’。”

    ERROR 错误 ngIfElse 必须是 TemplateRef 但收到 true HTML 文件
  • 每行显示 3 个项目 - while 循环 - php/mysql [重复]

    这个问题在这里已经有答案了 我目前正在开发一个循环来显示 mysql 表中的项目 有没有一种简单的方法可以每行显示 3 个项目 到目前为止 我设法在 html 表格内的一行中显示所有项目 我将不胜感激任何帮助 代码 不带 html 表标签
  • 自动刷新网页

    我有一个网页 允许用户执行各种操作 进而修改数据库 此外 此 Web 应用程序需要跟踪数据库中随时间不断变化的各个字段 每隔几秒刷新一次页面是实现此目的的最佳方法吗 例如 如果页面上有一个很长的列表需要滚动 则由于刷新导致页面不断重置 因此
  • Android:如何录制视频并实时处理其帧?

    我有一个 SurfaceView 和一个 MediaRecorder 我用它来显示和录制视频 现在我想实时访问该视频上的各个帧以对其进行一些处理 我可以通过 MediaRecorder 对象访问帧吗 或者我必须添加一个监听器 None
  • 蛋白质序列编码

    我正在开发一个Python程序来计算一组字符串 蛋白质序列 的突变残基和位置的数字编码 存储在fasta格式文件中 每个蛋白质序列用逗号分隔 我正在尝试找到突变的位置和序列 我的fasta文件如下 MTAQDDSYSDGKGDYNTIYLG
  • Guzzle send() 方法导致 cURL 错误 35 Too much open files

    尝试使用 Guzzle 5 执行以下代码 client new GuzzleClient defaults headers User Agent gt static userAgentString request client gt cre
  • 如何将 ngOptions 与包含 HTML 实体的字符串一起使用?

    我正在使用 ng Options 构建选择菜单 但我的标签之一中有一个 HTML 实体 amp 标签显示为Books amp Stuff not Books Stuff 我的玉石是这样的 select ng show isType sele
  • 如何通过多个动作达成一个意图

    我想显示一个活动选择器 其中显示所有可以查看的应用程序and or编辑一些数据 有没有一种简单的方法可以做到这一点 或者我是否必须实现自己的活动选择器对话框 或者也许我可以直接子类化Intent 谢谢 我通过使用 EXTRA INITIAL
  • 动态路由在使用 Next.js 进行页面刷新时不起作用

    我使用 Next js 但动态路由出现错误 在我的应用程序中我使用getStaticPaths getStaticProps和这个 a offer title a 当我单击此链接时 动态路由显示我的页面没有任何问题 但是当我刷新同一页面时
  • Svg 剪辑路径根据视口调整大小

    我正在努力调整 HTML 设置中剪切的 svg 的大小 我寻找类似的解决方案 但还没有找到 我正在尝试根据垂直屏幕视口调整剪辑的 svg 大小 这是我的设置的 codepen 示例 slider image clip path url cl
  • 在 WP 8.1 的 ListView 中禁用点击动画

    在 WP 8 1 中 如何删除默认动画ListView当点击某个项目时 它会根据点击发生的位置向不同方向倾斜 平移 我不想要任何项目点击动画 动画来自 ListView 的 ItemContainerStyle 的 按下 状态 在设计器中选
  • python 模块会被导入两次吗?

    如果我有一个运行的文件import math 还有第二个文件import mathAND 导入第一个文件 是否加载math模块在内存中两次 当你这样做时import math它被导入并放入sys modules 接下来你做import ma