В чем разница между импортом из `foo.py` и импортом из` foo / __ init __. Py` в Python

1

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

from foo import X #  (or import foo)

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

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

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

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

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

Теги:
import
pylint

1 ответ

0
Лучший ответ

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню