Импортируйте вторичный файл в IDE spyder с помощью звездообразного импорта без предупреждений - PullRequest
0 голосов
/ 19 апреля 2019

Поскольку основной файл становился довольно длинным, я решил разделить свой код на два файла, один из которых содержал все функции (здесь называемые common_functions.py), а другой содержал классы и методы, позже импортируя первый. Вопрос в том, что я хотел бы импортировать эти функции, используя

from common_functions import *

так как мне не нужен префикс для функции внутри и потому что их довольно много. Также, хотя это и не важно, это позволяет мне не повторять импорт пакетов в файле класса. Проблема в том, что spyder не идентифицирует внутреннюю часть импортированного файла, в результате чего везде появляются предупреждения, как показано ниже, хотя код выполняется нормально.

Screenshot

Итак, мой вопрос: есть ли способ удалить это предупреждение, объяснив spyder, как получить пакеты и функции common_functions.py, или организовав код другим способом?

1 Ответ

2 голосов
/ 19 апреля 2019

Spyder использует pyflakes под капотом для анализа кода в реальном времени на панели редактора. Pyflakes не имеет возможности интерпретировать операторы импорта с подстановочными знаками (то есть он не будет извлекать все имена, которые фактически импортированы с помощью подстановочного импорта). Отсюда и предупреждения о неопределенных именах, которые вы получаете.

Я бы порекомендовал вообще не использовать подстановочные символы в файлах кода. Несмотря на то, что подстановочные знаки являются допустимым кодом Python, в большинстве случаев их считают плохой практикой (см. здесь и здесь для более подробного объяснения). Если вы замените from common_functions import *, например, import common_functions as cf, то префикс, который вам нужно использовать, будет минимальной длины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...