如果我有这样的目录结构:
package/
__init__.py
functions.py #contains do()
classes.py #contains class A()
我希望能够致电
import package as p
如何将functions
,classes
的内容设为:
p.do()
p.A()
代替:
p.functions.do()
p.classes.A()
文件中的细分只是为了方便(允许更容易的协作),但我更喜欢将所有内容放在同一名称空间中。
答案 0 :(得分:14)
您可以<{1}} 执行此操作(因为这是您__init__.py
时导入的内容):
import package
然而,import *
is nearly always a bad idea并不是例外情况之一。相反,许多软件包显式导入了一组有限的常用名称 - 比如说,
from package.functions import *
from package.classes import *
这也允许直接访问from package.functions import do
from package.classes import A
或do
,但它几乎不容易发生名称冲突以及来自A
的其他问题。