`__init__.py` 导入文件中未使用的多个模块
The `__init__.py` import multiple modules while they are not utilized within the file
我正在阅读/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
导入多个未在文件中使用的模块。
我假设他们可能被住在同一个目录中的其他人雇用,Django 是如何做到这一点的?
The __init__.py
import multiple modules
s/modules/names/ - from somemodule import somename
语法公开了 somename
名称,而不是 somemodule
.
while they are not utilized within the files.
I assume they might be employed by others lived in the same dir
实际上这是一种称为 "facade" 的设计模式 - forms
包隐藏了它的内部实现(其中定义了子模块/子包)所以
1/ 用户可以直接从 django.forms
中导入他们需要的东西,而不必关心底层模块/子包的层次结构,
和
2/ 维护人员可以在不破坏客户端代码的情况下重新组织底层模块/子包层次结构。
How Django achieve this?
这不是 Django 特有的,它只是普通的 Python。阅读 Python 关于模块和包的文档。
我正在阅读/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
导入多个未在文件中使用的模块。
我假设他们可能被住在同一个目录中的其他人雇用,Django 是如何做到这一点的?
The
__init__.py
import multiple modules
s/modules/names/ - from somemodule import somename
语法公开了 somename
名称,而不是 somemodule
.
while they are not utilized within the files. I assume they might be employed by others lived in the same dir
实际上这是一种称为 "facade" 的设计模式 - forms
包隐藏了它的内部实现(其中定义了子模块/子包)所以
1/ 用户可以直接从 django.forms
中导入他们需要的东西,而不必关心底层模块/子包的层次结构,
和
2/ 维护人员可以在不破坏客户端代码的情况下重新组织底层模块/子包层次结构。
How Django achieve this?
这不是 Django 特有的,它只是普通的 Python。阅读 Python 关于模块和包的文档。