簡體   English   中英

python-導入名稱空間

[英]python - import namespace

如果我有一個像這樣的圖書館:

MyPackage:

  • __init__.py

  • 子包裝1

    • __init__.py
    • moduleA.py
    • moduleB.py
  • 分包2
    • __init__.py
    • moduleC.py
    • moduleD.py

但是我希望用戶可以像直接import MyPackage.moduleA一樣import MyPackage.moduleA moduleA。 我可以通過在MyPackage/__init__.py編寫一些規則來實現這MyPackage/__init__.py嗎?

MyPackage/__init__.py ,從子包中導入所需的模塊:

from __future__ import absolute_import  # Python 3 import behaviour

from .SubPackage1 import moduleA
from .SubPackage2 import moduleD

這使得MyPackage moduleAmoduleDmoduleA全局變量。 然后,您可以使用:

from MyPackage import moduleA

然后將其綁定到相同的模塊,或者

import MyPackage

myPackage.moduleA

直接訪問該模塊。

但是,您不能使用

from MyPackage.moduleA import somename

因為這要求moduleA直接存在於MyPackage中; __init__中的一個全局__init__不會在那里切掉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM