Ответ 1
Насколько я могу судить, такое поведение не обрабатывается как проверка или какой-либо другой настраиваемый параметр, а это означает, что перед импортом не может быть #noinspection UnusedImport
(или эквивалент).
Если вы не хотите определять неиспользуемый блок, в котором вы используете эти переменные, есть другой простой и, вероятно, лучший способ добиться того, что вы хотите:
#b.py code
import A
# [...] your code
__all__ = ['A', ...] # *all* the names you want to export
PyCharm достаточно умен, чтобы посмотреть __all__
и не удалять A
как неиспользуемый импорт.
Однако существует ограничение, что __all__
должно быть простым литералом списка. Вы не можете делать такие вещи, как:
__all__ = ['A'] + [name for name in iterable if condition(name)]
Даже не:
x = 'b'
__all__ = ['A', x]
Определение __all__
- это лучший способ сделать ваш модуль *
-import безопасным, так что вы уже должны это делать.