[英]Do you need to use __init__.py to import a class from a module within a package cleanly?
假設我有一個src文件夾,一個名為Foo的包,以及一個名為Foo的模塊,其中包含一個也稱為Foo的類。 然后在src文件夾中,我有一個主模塊,希望直接在其命名空間中使用Foo類。
-src
-Foo
__init__.py
Foo.py
main.py
我相信我可以做這樣的事情
main.py
from Foo.Foo import Foo
或將其添加到包init中
import Foo
要么
from Foo import Foo
然后我可以嘗試
from Foo import Foo
但理想情況下,我希望能夠
import Foo
在main.py中,並將該類直接作為Foo提供(而不是Foo.Foo)
完全相同的名稱來命名程序包,模塊和類也許不是最佳實踐,但似乎我遇到了確實有意義的情況。 我也知道我應該將模塊名稱全部小寫,但在此示例中我將其保留為小寫。
您需要使用__init__.py
使文件夾被Python識別為包含文件或模塊的模塊,這些文件或模塊本身也可以導入。 從而,
from myfile import myclass
。 __init__.py
以便對於Foo
文件夾之外的模塊,它將被識別為可導入模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.