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.
上关注其状态
我在 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.
上关注其状态