第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

模塊導(dǎo)入結(jié)構(gòu)是否應(yīng)該避免將中間模塊拖到更高的命名空間中?如果是這樣,怎么辦?

模塊導(dǎo)入結(jié)構(gòu)是否應(yīng)該避免將中間模塊拖到更高的命名空間中?如果是這樣,怎么辦?

慕婉清6462132 2023-12-20 19:48:48
假設(shè)我有一個這樣的模塊:module├── __init__.py└── submodule    ├── B.py    ├── __init__.py    └── subsubmodule        ├── A.py        └── __init__.py具有以下文件內(nèi)容:module/submodule/subsubmodule/A.py    class A:        passmodule/submodule/subsubmodule/__init__.py    from .A import Amodule/submodule/__init__.py    from .subsubmodule import A    from .B import Bmodule/submodule/B.py    class B:        passmodule/__init__.py    from .submodule import A, B當(dāng)我導(dǎo)入模塊時,我希望類A和B立即在頂層可用。按照我設(shè)置的方式,效果很好。但我最終還是submodule在module. 為什么?這是可以還是有問題?對我來說它看起來不干凈。我可以避免這種情況嗎?In [1]: import moduleIn [2]: dir(module)Out[2]: ['A', 'B', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'submodule'] # <------------ why is that here? 我說from .submodule import A, B在__init__.py的module。我從來沒有說過from . import submodule。所以中間模塊顯然被拖到了命名空間中。是否應(yīng)該避免這種情況,如果是的話如何避免。
查看完整描述

1 回答

?
臨摹微笑

TA貢獻(xiàn)1982條經(jīng)驗 獲得超2個贊

我在模塊的init.py說了from .submodule import A, B。我從來沒有說過從。導(dǎo)入子模塊。所以中間模塊顯然被拖到了命名空間中。是否應(yīng)該避免這種情況,如果是的話如何避免。

沒有什么是“拖入命名空間”的,“子模塊”是“模塊”命名空間的一部分,因為“子模塊”是“模塊”的一部分,這就是為什么在模塊的init中你可以這樣做;“來自(DOT)子模塊..”。

該點翻譯為“來自 THISPACKAGE->子模塊...”

如果“子模塊”不是“模塊”包的一部分,那么您將無法從模塊的init內(nèi)的“模塊”導(dǎo)入它。


查看完整回答
反對 回復(fù) 2023-12-20
  • 1 回答
  • 0 關(guān)注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號