【问题标题】:Difference between memory usage when importing modules导入模块时内存使用的区别
【发布时间】:2015-04-15 14:35:43
【问题描述】:

我想知道以这些方式导入模块时的内存使用量有什么区别:

import Mod1
from Mod1 import *
from Mod1 import a,b,c

主要在前两者之间。

【问题讨论】:

  • 你可以在这里找到答案:stackoverflow.com/questions/7372966/…
  • 我没看明白...所以前两个例子,它们之间没有区别吗?
  • @HugoSousa 这里的操作是要求比较不同导入方法的内存使用情况,链接是回答一般导入的内存使用情况。
  • 是的,有区别:在第一个/第二个中,您将导入模块内的所有内容;在第三个中,您只导入 a、b 和 c 函数。第一个和第二个的区别在于第一个它不是一个模块,它是一个包。使用第一个导入你必须做 Mod1.function(),在第二个导入中你可以直接调用该函数。

标签: python memory import-module


【解决方案1】:

第一个使用最少的内存,因为它只在模块范围内创建一个名称。

第二个使用最多(假设Mod1 不仅仅包含a、b 和c,无论是显式还是在__all__ 中),因为所有名称都是重新创建的。

在所有三种情况下,整个模块都会被导入并执行,因此如果您希望节省大量内存,这不是您想要优化的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-21
    • 2017-06-21
    • 2019-10-08
    • 2018-03-19
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    相关资源
    最近更新 更多