В чем разница между импортом из `foo.py` и импортом из` foo / __ init __. Py` в Python - PullRequest
0 голосов
/ 09 января 2019

Если foo.py и foo/__init__.py одинаковы и не содержат относительного импорта. И если вы импортируете со следующим:

from foo import X #  (or import foo)

Я думал, что нет никакой разницы. Я делал это довольно много раз, когда файл становился слишком большим, и когда я хотел разбить его на пакет и несколько файлов. Но на самом деле это не так, о чем свидетельствует этот коммит , не пройденный тестами на пиллинт .

pylint/utils.py → pylint/utils/__init__.py
File renamed without changes.

Сбой трех функциональных тестов (logging_format_interpolation, deprecated_methods_py3 и redundant_unittest_assert). Это истинный ребаз после ребаз и каждый раз, когда коммит из ветки master работал нормально. Я также использую опцию --recreate при запуске tox.

Файл stdlib.py, содержащий эти контролеры, кажется, даже не импортирует что-то из pylint.utils (он использует pylint.checker.utils), поэтому я понятия не имею, почему он сломается, но все же.

Этот файл содержит некоторую функцию, начинающуюся с подчеркивания (_function_name), это может быть проблемой?

1 Ответ

0 голосов
/ 05 февраля 2019

Разницы действительно нет. Основная ветвь pylint просто не проходила тестовый набор очень долгое время, см. этот комментарий .

...