【发布时间】:2015-09-25 09:17:20
【问题描述】:
两个模块:
#foo.py
def foo():
print("foo")
和
#bar.py
def bar():
print("bar")
我想导入两个模块并将它们放在同一个命名空间中,如下所示(不起作用):
import foo as a
import bar as a
a.foo() # Error :(
a.bar()
如何让它发挥作用?
【问题讨论】:
-
为什么不能将 foo 作为 a 和 bar 作为 b 导入?
-
因为如果两者具有相同的名称会更好。例如:
import tkinter as tk和import bwidget as tk -
为什么会更好?如果两个模块都有同名的函数怎么办?
-
这是个糟糕的主意
-
将 2 个(或更多)任意 3rd 方模块组合到一个命名空间中会导致灾难,原因已经提到。但是,存在这样一种情况:当您创建了一个由多个源文件中定义的组件组成的包时,并且您希望将所有这些组件导入一个命名空间中。当然,您仍然必须小心,以免意外造成名称冲突。
标签: python python-3.x python-import