Python包中__init__.py文件怎么使用(python,开发技术)

时间:2024-04-29 15:47:32 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    Python%E5%8C%85%E4%B8%AD__init__.py%E6%96%87%E4%BB%B6%E6%80%8E%E4%B9%88%E4%BD%BF%E7%94%A8

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

这是Python官方文档中对__init__.py文件的描述,其实它的意思很简单,就是说Python文件都是按照目录当作不同的模块来组织的,这个目录被认为是Python包目录,Python会通过搜索该目录下的文件来导入相关的模块。但是并不是所有的目录都会被搜索添加,只有当目录中包含__init__.py文件时,这个目录才会被Python当作是一个包目录,进而搜索添加里面的文件。这样做可以让编程者自己控制哪些目录可以被Python导入成包。

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

综上所述,__init__.py文件最主要的作用是2个:

当目录下包含这个文件时,Python会将其当作成包目录,进而可以使用import xx.xx的方式导入目录下的文件或者模块。

使用__init__.py文件可以控制模块导入时的变量和内容,便于编程者的控制。

下面我们看几个例子即可。

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

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

init_example/ a_pkg/

__init__.py

a.py

init_test.py

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

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

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

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

Hey, I am a __init__.py file

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

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

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

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

会打印如下内容:

I am a_pkg!

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

时定义*表达的内容。

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

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

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

I am a_pkg!

本文:Python包中__init__.py文件怎么使用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:python如何实现彩色圆环下一篇:

3 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18