gpt4 book ai didi

python - 为什么我要将代码放在 __init__.py 文件中?

转载 作者:IT老高 更新时间:2023-10-28 21:45:00 26 4
gpt4 key购买 nike

我正在寻找我将在 __init__.py 文件中放入什么类型的代码,以及与此相关的最佳实践是什么。或者,一般来说这是一种不好的做法吗?

非常感谢任何对已知文档的引用来解释这一点。

最佳答案

库和框架通常使用 __init__.py 文件中的初始化代码巧妙地隐藏内部结构并为用户提供统一的界面

我们以 Django forms module 为例.表单模块中的各种函数和类根据它们的分类定义在不同的文件中。

forms/
__init__.py
extras/
...
fields.py
forms.py
widgets.py
...

现在,如果您要创建一个表单,您必须知道每个函数是在哪个文件中定义的,并且您创建联系表单的代码必须看起来像这样(这既不方便又丑陋)。

 class CommentForm(forms.forms.Form):
name = forms.fields.CharField()
url = forms.fields.URLField()
comment = forms.fields.CharField(widget=forms.widgets.Textarea)

相反,在 Django 中,您可以直接从表单命名空间中引用各种小部件、表单、字段等。

from django import forms

class CommentForm(forms.Form):
name = forms.CharField()
url = forms.URLField()
comment = forms.CharField(widget=forms.Textarea)

这怎么可能?为了实现这一点,Django 将以下语句添加到 forms/__init__.py 文件中,该文件将所有小部件、表单、字段等导入到 forms 命名空间中。

from widgets import *
from fields import *
from forms import *
from models import *

如您所见,这简化了您创建表单时的工作,因为现在您不必担心每个函数/类的定义位置,只需直接从 forms 使用所有这些命名空间。这只是一个示例,但您可以在其他框架和库中看到类似的示例。

关于python - 为什么我要将代码放在 __init__.py 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5831148/

26 4 0