класс python pep8 в init импортирован, но не используется

Я делаю проверки PEP8 в python с помощью python flake8 библиотека. У меня есть оператор import в __init__.py файл в одном из моих подмодулей, который выглядит так:

from .my_class import MyClass

причина, по которой у меня есть эта строка в файле init, заключается в том, что я могу импортировать MyClass из субмодуля как from somemodule import MyClass вместо того, чтобы писать from somemodule.my_class import MyClass.

Я хотел бы знать, можно ли сохранить эту функциональность при исправлении нарушения PEP8?

2 ответов


это на самом деле не нарушение PEP8. Я просто делаю это:

from .my_class import MyClass  # noqa

Edit: еще одна возможность-использовать __all__. В этом случае, flake8 понимает, что происходит:

from .my_class import MyClass

__all__ = ['MyClass',]

по данным PEP 8, вы должны включить MyClass на __all__, который также исправит импортированную, но не используемую проблему:

чтобы лучше поддерживать интроспекцию, модули должны явно объявить имена в их общедоступном API с использованием атрибута __all__.