当前位置: 首页 > 面试题库 >

将代码添加到__init__.py

商飞龙
2023-03-14
问题内容

我正在研究django中的模型系统如何工作,我注意到一些我不理解的东西。

我知道您创建了一个空__init__.py文件来指定当前目录是一个包。并且您可以在其中设置一些变量,__init__.py以便import
*正常工作。

但是django添加了一堆from … import
…语句,并在中定义了一堆类__init__.py。为什么?这不仅会使事情看起来凌乱吗?是否有需要此代码的原因__init__.py


问题答案:

__init__.py当导入包含它的包(目录)时,所有导入都可用。

例:

./dir/__init__.py

import something

./test.py

import dir
# can now use dir.something

编辑:忘了提及,__init__.py您第一次从该目录导入任何模块时,中的代码就会运行。因此,通常是放置任何程序包级初始化代码的好地方。

EDIT2:dgrant指出了我的示例中可能存在的混乱。In__init__.py import something可以导入任何模块,而不必从包装中导入。例如,我们可以将其替换为import datetime,然后在顶层test.py都可以使用以下两个代码片段:

import dir
print dir.datetime.datetime.now()

import dir.some_module_in_dir
print dir.datetime.datetime.now()

最重要的是:在__init__.py导入包或包中的模块时,在包命名空间中将自动提供在中分配的所有名称(无论是导入的模块,函数还是类)。



 类似资料:
  • 问题内容: 有没有一种方法(或编辑器)可以让我从源文件(例如* .java)中链接图像/文件/ http链接,有点像富文本文档? 这样,在阅读代码时,我可以快速查看附加的图像(增强注释),而不用打开浏览器等。 问题答案: Javadocs是HTML,因此您可以在其中嵌入图片: Eclipse会很高兴在javadoc视图中或将鼠标悬停在注释上时向您显示图像。其他IDE可能会或可能不会这样做。 显然,

  • 问题内容: 中国货币的ISO 4217代码为CNY。由于限制了使用该货币进行的全球自由交易,因此存在第二种“离岸”等价货币,称为CNH。维基百科对此有一些总结。 CNH不在ISO 4217中,但我希望能够在我的应用程序中使用它,而不必编写自己的Currency类。大概在JVM安装目录中有某种列表。如何添加其他货币代码? 问题答案: 似乎Java 7已添加对此功能的支持。 对于较早的版本,您可以使用

  • 问题内容: 我正在使用一个Android应用程序,该应用程序加载HTML页面并在Web视图中显示它。问题是我想添加我的自定义CSS(加载的HTML没有任何CSS或指向CSS的链接)。如何使用jsoup将自定义css添加到HTML代码中?我无法修改html。Webview之后如何打开它?谢谢 问题答案: 几种方法。您可以用来将HTML附加到元素上。 或者,用于向现有元素添加属性。这是一个添加到所有链

  • 问题内容: 我试图自定义现有的JS库,而不修改原始JS代码。这段代码将加载一些我可以访问的外部JS文件,而我想做的就是更改原始文件中包含的功能之一,而无需将整个内容复制并粘贴到第二个JS文件中。 因此,例如,禁区JS可能具有以下功能: 我希望能够以某种方式在该函数中追加或添加一些JS代码。原因主要是在原始的不可触摸的JS中,该功能非常庞大,如果该JS得到更新,则我用它覆盖的功能将过时。 我不确定这

  • 8.5.1 代码介绍 热图代码用于加载SiteMonitor JS热图脚本,在网页上正确添加热图代码后,即可实现收集用户的点击行为,利用热图呈现,颜色越深的区域表示点击越多,颜色越浅则表示点击少。 8.5.2 代码导出 后台路径:高阶报告-热图分析,输入分组名称和页面URL后,点击保存并获取代码即可。 导出的代码样例 热图基础代码: stm_clicki('require','heatmap',

  • 8.2.1 代码介绍 用户与网站的交互动作,可利用事件统计代码进行统计。 (简单)事件统计可支持统计3个维度,1个指标的用户交互动作, 代码如下: stm_clicki('send', 'event', '事件分类', '事件动作', '事件标签', 1); 在使用时,替换以上中文内容即可。 其中, 字段名称 数据类型 字段含义 使用注意项 Category 字符串 事件分类 必填项 Action