【问题标题】:What is the difference between "import package" versus "from package import ..."?“导入包”与“从包导入......”有什么区别?
【发布时间】:2020-08-10 08:19:31
【问题描述】:

为什么有些包比如Pandas总是导入为:

import <name of package> #e.g. import pandas as pd

而其他包被“导入”为:

from <name of package> import <module> #e.g. from fredapi import Fred

我知道当你想导入包含很多模块的包时,你可以用

导入你需要的特定模块
from <name of package> import <module> #e.g. from fredapi import Fred

相对于导入整个包及其所有模块。

我的问题更多关于只能通过以下方式导入的包:

from <name of package> import <module> #e.g. from fredapi import Fred

是因为包的结构吗?是因为它实际上不是一个包吗?在这一点上,我很困惑。希望有人可以对此有所了解。

一个具体的例子,我永远无法像这样导入 fredapi:

import fredapi

我只能通过“from”命令使用 fredapi。

from fredapi import Fred

【问题讨论】:

  • “我的问题更多关于只能通过from &lt;name of package&gt; import &lt;module&gt; 导入的包”——你确定这是唯一可以导入的方式吗?你不能在import fredapi 后面跟着fredapi.Fred.whatever()

标签: python import package


【解决方案1】:

可以将一个包想象成一个书架,其中包含一些您想阅读的书籍。

您可以选择一次阅读所有内容:

import bookshelf
# read bookshelf.book1, bookshelf.book2, until bookshelf.bookN

或者你可以一次选择几本书来阅读,

from bookshelf import book1, book5, bookN

在这两种情况下都需要注意的是,无论您如何阅读书籍,整个书架仍然占据您的书房空间。在 Python 世界中,这意味着无论是导入整个包,还是仅将选择的几个模块导入命名空间,都必须导入整个模块并将其保存在内存中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 2020-12-29
    • 1970-01-01
    • 2019-09-21
    • 2018-06-23
    • 2018-10-30
    • 1970-01-01
    相关资源
    最近更新 更多