Python 为什么我要把代码放在_uinit__uu.py文件中?
我想知道我应该在Python 为什么我要把代码放在_uinit__uu.py文件中?,python,module,Python,Module,我想知道我应该在\uuuu init\uuuuuy.py文件中输入什么类型的代码,以及与此相关的最佳实践是什么。或者,这通常是一种不好的做法吗 对于任何解释这一点的已知文档的引用也非常感谢。该领域的最佳实践之一是从库中导入所有需要的类(例如,请查看)。因此,您的库的用户可以执行以下操作: from coollibrary import OneClass, SecondClass 而不是 from coollibrary.package import OneClass from coollibr
\uuuu init\uuuuuy.py
文件中输入什么类型的代码,以及与此相关的最佳实践是什么。或者,这通常是一种不好的做法吗
对于任何解释这一点的已知文档的引用也非常感谢。该领域的最佳实践之一是从库中导入所有需要的类(例如,请查看)。因此,您的库的用户可以执行以下操作:
from coollibrary import OneClass, SecondClass
而不是
from coollibrary.package import OneClass
from coollibrary.anotherpackage import SecondClass
此外,良好的实践包括在
\uuuu init\uuuuuuuuuuupy
版本常量库和框架通常在\uuuuuuuuuuuuuuuuuuuuuuu.py
文件中使用初始化代码来整洁地隐藏内部结构,并为用户提供统一的界面
让我们举一个例子。表单模块中的各种函数和类根据其分类定义在不同的文件中
forms/
__init__.py
extras/
...
fields.py
forms.py
widgets.py
...
现在,如果您要创建一个表单,您必须知道每个函数都是在哪个文件中定义的,并且您创建联系人表单的代码必须是这样的(这既不方便又难看)
相反,在Django中,您可以直接从表单名称空间引用各种小部件、表单、字段等
from django import forms
class CommentForm(forms.Form):
name = forms.CharField()
url = forms.URLField()
comment = forms.CharField(widget=forms.Textarea)
from widgets import *
from fields import *
from forms import *
from models import *
这怎么可能?为了实现这一点,Django将以下语句添加到forms/\uuuu init\uuuu.py
文件中,该文件将所有小部件、表单、字段等导入forms
命名空间
from django import forms
class CommentForm(forms.Form):
name = forms.CharField()
url = forms.URLField()
comment = forms.CharField(widget=forms.Textarea)
from widgets import *
from fields import *
from forms import *
from models import *
如您所见,这简化了创建表单的过程,因为现在您不必担心每个函数/类的定义位置,只需直接从forms
名称空间使用所有这些函数/类即可。这只是一个示例,但您可以在其他框架和库中看到类似的示例
your_package/
__init__.py
file1.py/
file2.py/
...
fileN.py
# in __init__.py
from file1 import *
from file2 import *
...
from fileN import *
# in file1.py
def add():
pass
然后其他人可以通过调用add()
不知道file1,比如
from your_package.file1 import add
你所说的版本常数的可能重复是什么意思?你能把这句话说清楚吗?
import logging.config
logging.config.dictConfig(Your_logging_config)