Импорт файлов в Python от __ init __. py

Ваш менеджер проектов просит, чтобы Вы записали приложение.

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

Лучше был бы то, если бы Ваша зависимость от PM ввела , Вы с говорите спецификацию для приложения. Теперь Ваш код будет связанным со спецификацией, которую он дает Вам.

Лучше, если Вам сказали, где исходный репозиторий был.

Лучше, если Вам сказали, какова техническая платформа была.

Лучше, если Вам сказали, когда это должно было быть сделано.

И т.д.

13
задан SilentGhost 26 May 2010 в 23:27
поделиться

3 ответа

Нет, они должны быть помещены в пространство имен каждого модуля, поэтому вы должны каким-то образом импортировать их (если только вы не передадите logging в качестве аргумента функции, который будет странный способ делать что-то, мягко говоря).

Но модули все равно импортируются только один раз (а затем помещаются в a , b и c namespaces), поэтому не беспокойтесь об использовании слишком большого количества памяти или чего-то подобного.

Вы, конечно, можете поместить их в отдельный модуль и импортировать , которые в каждый a , b и c , но этот отдельный модуль все равно придется импортировать каждый раз.

11
ответ дан 1 December 2019 в 20:11
поделиться

Вы можете сделать это с помощью обычного файла, такого как include.py , но он идет вразрез с рекомендуемой практикой, поскольку включает импорт подстановочных знаков. Рассмотрим следующие файлы:

app/
    __init__.py
foo/
    a.py
    b.py
    c.py
    include.py <- put the includes here.
    __init__.py

Теперь в a.py и т. Д. Выполните:

from include import *

Как указано выше, это не рекомендуется, потому что импорт подстановочных знаков не рекомендуется.

14
ответ дан 1 December 2019 в 20:11
поделиться

Да, но не делайте этого . Серьезно, не надо. Но если вы все еще хотите знать, как это сделать, это будет выглядеть так:

import __init__

re = __init__.re
logging = __init__.logging
os = __init__.os

Я говорю не делать этого не только потому, что это беспорядочно и бессмысленно, но также потому, что ваш пакет на самом деле не должен использовать __ init __. py вот так. Это код инициализации пакета.

6
ответ дан 1 December 2019 в 20:11
поделиться
Другие вопросы по тегам:

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