Python __init__.py作用详解,python 包 __init__

  Python __init__.py作用详解,python 包 __init__

  我们经常会看到一个__init_。当我们构建一个python包时。以下文章主要介绍_ _ init _的功能和用法的相关信息。Python包中的py文件。通过示例代码详细介绍,有需要的朋友可以参考一下。

  00-1010前言一,介绍__init__。py文件II,用例为__init__。py文件2.1,目录没有__init__。py文件,使用导入xx.xx会报错吗?2.2.在__init__中定义变量或逻辑。py文件将在导入过程中执行。2.3.在__init__中定义变量或方法。py文件可以直接导入。2.4.用__init__中的__all__方法汇总。py文件。

  

目录

 

  在Python项目中,我们经常可以看到带有“__init__”的目录。py”文件。在PyCharm中,包含这个文件的目录被认为是Python的包目录,它的显示与目录的图标不同。如下图所示,dir_example是一个空白目录,其图标是一个文件夹图标,而有一个_init__。init_example下的py文件,它的图标是一个包。

  那么这个文档的作用是什么,我们平时是怎么使用的呢?

  

前言

 

  Python定义了两种类型的包,常规包和名称空间包。常规包是传统包,因为它们存在于Python 3.2和更早的版本中。常规包通常实现为包含__init__的目录。py文件。当导入常规包时,这个__init__。py文件是隐式执行的,它定义的对象被绑定到包的名称空间。

  这是对__init__的描述。Python官方文档中的py文件。其实它的意思很简单,就是把Python文件按照目录组织成不同的模块。该目录被认为是Python包目录,Python会通过搜索该目录下的文件来导入相关模块。但是并不是所有的目录都会被搜索和添加。仅当目录包含文件__init__时。py,这个目录会被Python当作一个包目录,然后里面的文件会被搜索和添加。这允许程序员控制哪些目录可以被Python导入到包中。

  当目录包含__init__时。py文件,Python在引入这个模块之前会先执行这个文件。因此,程序员也可以使用这个文件来控制定义包级别的变量。

  综上所述,__init__的主要功能。py文件是2:

  当目录中包含这个文件时,Python会将其作为一个包目录,然后通过importxx.xx的方式导入目录中的文件或模块。

  文件__init__。py可以用来控制模块导入时的变量和内容,方便程序员控制。

  下面我们来看几个例子。

  

一、__init__.py文件简介

 

  

二、__init__.py文件的使用案例

 

  看,在较低版本(比如3.2及以下),没有__init__的目录。py文件不能使用import xx.xx导入相关模块,但以后的版本可以。

  

2.1、没有__init__.py文件的目录,使用import xx.xx会报错吗?

 

  例如,我们有以下目录结构:

  初始化示例/a_pkg/

  __init__。巴拉圭

  a.py

  初始化测试

  即在

  it_example工程下有个init_test.py文件和a_pkg目录,a_pkg目录下有__init__.py文件和一个a.py文件。

  我们在a_pkg目录下的__init__.py文件定义:

  

print("Hey, I am a __init__.py file")

 

  那么,如果我们在init_test.py中内容如下:

  

from a_pkg import *

 

  执行init_test.py我们可以得到如下结果:

  

Hey, I am a __init__.py file

 

  

 

  因为在from a_pkg import *时候,会首先执行a_pkg目录下的__init__.py文件。

  

 

  

2.3、在__init__.py文件中定义变量或者方法,可以被直接导入使用

 

  还是上面的目录,假如我们在a_pkg目录下的a.py定义如下内容:

  

def a_method():

 

  在a_pkg目录下的__init__.py文件定义:

  

from a_pkg.a import a_method

 

  那么,我们在init_test.py中引入a_pkg可以直接引入a_method方法:

  

from init_example.a_pkg import a_method a_method()

 

  会打印如下内容:

  

I am a_pkg!

 

  

 

  

 

  

2.4、在__init__.py文件中使用__all__方法

 

  __all__方法可以在__init__.py文件定义一些包或者变量,可以在使用

  

from init_example.a_pkg import *

 

  时定义*表达的内容。

  例如还是上面的内容,但是我们在a_pkg目录下的__init__.py文件定义:

  

__all__ = ["a"]

 

  那么,我们在init_test.py中使用下面的语句可以引入a模块:

  

from a_pkg import *

 

  这时候依然会打印如下内容:

  

I am a_pkg!

 

  

 

  

 

  

总结

 

  到此这篇关于Python包中__init__.py文件的作用与用法的文章就介绍到这了,更多相关Python包__init__.py文件用法内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: