`__Init __. Py` импортирует несколько модулей, пока они не используются в файле - PullRequest
0 голосов
/ 09 мая 2018

Я читаю /django/forms/__init__.py

"""
Django validation and HTML form handling.
"""

from django.core.exceptions import ValidationError  # NOQA
from django.forms.boundfield import *  # NOQA
from django.forms.fields import *  # NOQA
from django.forms.forms import *  # NOQA
from django.forms.formsets import *  # NOQA
from django.forms.models import *  # NOQA
from django.forms.widgets import *  # NOQA

__init__.py импортирует несколько модулей, пока они не используются в файлах.

Я предполагаю, что они могут быть наняты другими людьми, живущими в одном и том же режиссере. Как Джанго достиг этого?

1 Ответ

0 голосов
/ 09 мая 2018

__init__.py импорт нескольких модулей

s / modules / names / - синтаксис from somemodule import somename предоставляет имя somename, а не somemodule.

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

На самом деле это шаблон проектирования, известный как «фасад» - пакет forms скрывает свою внутреннюю реализацию (в которой определен субмодуль / подпакет), поэтому

1 / пользователи могут просто импортировать то, что им нужно, из django.forms, не заботясь об иерархии базовых модулей / подпакетов,

и

2 / владельцы могут реорганизовать иерархию базовых модулей / подпакетов, не нарушая код клиента.

Как Django достиг этого?

Это не специфично для Django, это просто обычный Python. Прочитайте документацию Python о модулях и пакетах.

...