为什么我需要 "from tqdm import tqdm" 而不是 "import tqdm"?

Why do I need to "from tqdm import tqdm" instead of just "import tqdm"?

可能是一个简单的问题,但我才刚刚开始 Python 并尝试了解图书馆的工作原理。

所以我的问题是为什么我需要输入

from tqdm import tqdm

而不只是

import tqdm

与其他图书馆一样?

我知道当你只需要库的一部分时你可以这样做。但在这种情况下,如果我不这样做,我的程序就无法运行。第二个表达式不应该包含所有内容吗? 如果我 运行 我的程序用它我得到错误:

"TypeError: 'module' object is not callable"

from tqdm import tqdm 表示您正在 tqdm 下导入模块 tqdm。

import tqdm 表示导入整个包。在这种情况下,您必须使用 tqdm.tqdm(),这等同于在上述情况下仅使用 tqdm()

第一个tqdm是包或模块的名称。第二个 tqdm 是在 package/module 下定义的可调用对象。它可能是一个不同的可调用对象,例如 trange:

from tqdm import trange

您基本上是在 tqdm 模块中导入可调用的 tqdm。

tqdm 中有一个名为 tqdm 的模块。现在你的 tqdm 你可以

  1. 导入包 tqdm 中的所有模块并使用名为 tqdm 的模块:
import tqdm

for i in tqdm.tqdm(range(10)):
  pass

  1. 只需通过以下方式导入 tqdm 包的 tqdm 模块:
from tqdm import tqdm
for i in tqdm(range(10)):
  pass