1

假设我有一个 src 文件夹和一个名为 Foo 的包,其中一个名为 Foo 的模块包含一个也名为 Foo 的类。然后在 src 文件夹中,我有一个主模块,希望将 Foo 类直接放在其命名空间中。

-src
    -Foo
        __init__.py
        Foo.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)

也许将包、模块和类都命名为相同的名称并不是最佳实践,但似乎我遇到了确实有意义的情况。我也知道我可能应该将模块名称全部设为小写,但在本例中我保持不变。

4

1 回答 1

0

您需要使用__init__.py使 Python 将文件夹识别为包含可以自己导入的文件或模块的模块。因此,

  • 不,从技术上讲,你不需要它来导入一个类——你可以from myfile import myclass.
  • 但是,鉴于您的结构,您确实需要__init__.py让文件夹之外的模块Foo被识别为可导入模块。
于 2013-06-12T20:19:16.840 回答