Для чего нужен __init__.py?

Метод в вашем дочернем классе имеет другое количество аргументов, чем то, что вы пытаетесь передать в него. Может ли это быть связано с этим?

1889
задан smci 8 May 2019 в 03:12
поделиться

3 ответа

Это раньше было необходимой частью пакета ( старый, пред3.3 "регулярных пакета" , не более новые 3.3 + "пакет пространства имен" ).

Вот документация.

Python определяет два типа пакетов, регулярных пакетов и пакетов пространства имен. Регулярные пакеты являются традиционными пакетами, поскольку они существовали в Python 3.2 и ранее. Регулярный пакет обычно реализуется как каталог, содержащий __init__.py файл. Когда регулярный пакет импортируется, этот __init__.py, файл неявно выполняется, и объекты, которые это определяет, связываются с именами в package’s пространстве имен. __init__.py файл может содержать тот же код Python, который может содержать любой другой модуль, и Python добавит некоторые дополнительные атрибуты к модулю, когда это будет импортировано.

, Но просто нажимают на ссылку, она содержит пример, больше информации, и объяснение пакетов пространства имен, вид пакетов без __init__.py.

1267
ответ дан smci 8 May 2019 в 03:12
поделиться

__init__.py файл делает каталоги обработки Python, содержащие его как модули.

, Кроме того, это - первый файл, который будет загружен в модуле, таким образом, можно использовать его для выполнения кода, который Вы хотите выполнить каждый раз, когда модуль загружается, или определите подмодули, которые будут экспортироваться.

101
ответ дан Can Berk Güder 8 May 2019 в 03:12
поделиться

Это упрощает импорт других файлов Python. Когда Вы поместили, этот файл в каталоге (скажите материал), содержащий другие py файлы, тогда можно сделать что-то как импорт stuff.other.

root\
    stuff\
         other.py

    morestuff\
         another.py

Без этого __init__.py внутренняя часть материал каталога, Вы не могли импортировать other.py, потому что Python не знает, где исходный код для материала и неспособен распознать его как пакет.

28
ответ дан Matt Fenwick 8 May 2019 в 03:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: