程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

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

发布于2019-08-24 15:05     阅读(1232)     评论(0)     点赞(23)     收藏(5)


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

任何对已解释此文档的已知文档的引用也非常感谢。


解决方案


库和框架通常使用__init__.py文件中的初始化代码来整齐地隐藏内部结构并为用户提供统一的接口。

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

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中,您可以直接从forms命名空间引用各种小部件,表单,字段等。

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命名空间使用所有这些函数/类这只是一个例子,但你可以在其他框架和库中看到这样的例子。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/57094/78f491fdf11100fdc8ca/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

23 0
收藏该文
已收藏

评论内容:(最多支持255个字符)