将python模块向上拉入包名称空间
如果我有这样的目录结构:将python模块向上拉入包名称空间,python,namespaces,Python,Namespaces,如果我有这样的目录结构: package/ __init__.py functions.py #contains do() classes.py #contains class A() 我想打电话给你 import package as p 如何使函数,类的内容可以通过以下方式访问: p.do() p.A() 代替: p.functions.do() p.classes.A() 文件中的细分只是为了方便(允许更轻松的协作),但我更希望所有内
package/
__init__.py
functions.py #contains do()
classes.py #contains class A()
我想打电话给你
import package as p
如何使函数
,类
的内容可以通过以下方式访问:
p.do()
p.A()
代替:
p.functions.do()
p.classes.A()
文件中的细分只是为了方便(允许更轻松的协作),但我更希望所有内容都位于同一名称空间中。您可以在\uuuu init\uuuuuuuuuuy.py
中执行此操作(因为这是您在导入包时导入的内容):
然而,这并不是例外。相反,许多包显式导入有限的常用名称集,例如
from package.functions import do
from package.classes import A
这也允许直接访问do
或A
,但它不太容易发生名称冲突和其他来自import*
的问题,谢谢。我不需要导入*
,选择函数效果很好。我不知道这样做(从B导入B
)会将B
作为package.B
放入package
名称空间。虽然现在有点明显了。
from package.functions import do
from package.classes import A