init中导入但未使用的python pep8类

时间:2015-06-26 17:36:16

标签: python pep8 flake8

我正在使用python flake8库在python中进行PEP8检查。我在我的一个子模块的__init__.py文件中有一个import语句,如下所示:

from .my_class import MyClass

我在init文件中有这一行的原因是我可以将子模块中的MyClass导入为from somemodule import MyClass,而不必写from somemodule.my_class import MyClass

我想知道在纠正PEP8违规的情况下是否可以保留此功能?

3 个答案:

答案 0 :(得分:36)

这实际上不是PEP8违规。我只是这样做:

from .my_class import MyClass  # noqa

编辑:另一种可能性是使用__all__。在这种情况下,flake8了解正在发生的事情:

from .my_class import MyClass

__all__ = ['MyClass',]

答案 1 :(得分:6)

根据PEP 8,您应该在__all__中添加MyClass,这也将修复导入但未使用的问题:

  

为了更好地支持内省,模块应该明确声明   使用__all__属性在其公共API中命名。

答案 2 :(得分:2)

根据flake8's documention,您可以通过以下方式直接忽略此特定警告:

from .my_class import MyClass  # noqa: F401

作为参考,这里是flake8的error codes