【问题标题】:Python: import foo.bar as bar vs from foo import barPython:import foo.bar as bar vs from foo import bar
【发布时间】:2018-05-20 09:06:28
【问题描述】:

鉴于foo.bar是一个模块,有什么区别

import foo.bar as bar

和

from foo import bar

我对延迟导入模块对此有何影响特别感兴趣。

注意:这不是this question的重复。

【问题讨论】:

  • 发现此问题的人,请查看this 答案。

标签: python python-import


【解决方案1】:

在第一行代码中:

 import foo.bar as bar

这里你是从foo 包中导入bar,但是为什么添加as bar 意味着当你需要在bar 中访问任何函数func 时。你必须像访问 foo.bar.func 但当您添加 as bar 时,您只需使用

 bar.func

与from foo import bar 行相同,只是导入bar

【讨论】:

  • 我认为这不是真的。尝试两者并使用dir() 和dir(bar) 进行检查,命名空间看起来相同。 bar 中的函数在两者中都可用。
  • @SimonFraser:我的解释是指模块中功能的可访问性
  • 在这两个例子中,函数func1 in bar 都可以通过bar.func1()访问
  • 正如@SimonFraser 所说,当您使用它们时,它们是完全等效的。我想知道 Python 在加载导入方面是否有任何区别
猜你喜欢
  • 1970-01-01
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-10
  • 2016-02-11
  • 1970-01-01
相关资源
最近更新 更多