簡體   English   中英

您是否需要使用__init__.py從包中的模塊中干凈地導入類?

[英]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.

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