Python 模块中 __init__.py 的正确编码风格

Proper style of coding __init__.py in Python modules

我在 Python 方面不是很流利,所以我不确定我正在做的事情是常见的做法还是正确的做法。

我正在创建一个模块 archive,每个文件包含一个 class,例如SmsArchiveReader.py 里面有 class SmsArchiveReader。为了使导入不那么乏味,我决定将 classes 直接导入 __init__.py.

但是,Spyder 和 Pylint 对我的 __init__.py 都有问题,Spyder 告诉我不应该使用未使用的导入,而 Pylint 告诉我不应该使用绝对导入。这两个建议对我来说似乎毫无意义,因为这是 __init__.py 我们正在谈论的,但我愿意接受建议。

下图:

至于我想要实现的外观,我希望使用此模块的代码看起来像这样:

import archive

myReader = archive.SmsArchiveReader()
myReader2 = archive.FooArchiveReader()

而不是:

import archive

myReader = archive.SmsArchiveReader.SmsArchiveReader()
myReader2 = archive.FooArchiveReader.FooArchiveReader()

那么创建模块的正确做法是什么?

正如 jonrsharpe 所说,这是 Spyder 的问题 IDE。此问题已提交给他们的错误跟踪器,感兴趣的可以在 Github.

上关注其状态