1.创建两个文件main.py和moduleA.py

main.py内容如下
import moduleA
moduleA.py内容如下
print('阿拉上海欢迎侬')
此时运行main.py文件,结果如下:

由此可见,在import一个module时,会执行这个module
2.此时我们更改目录结构,新建packageA文件夹,把moduleA.py移入,同时更改main.py的代码
目录结构如下:

main.py代码如下:
import packageA
此时运行main.py文件,结果如下

什么内容都没有输出,说明导入一个package时,不会运行包内的所有python代码
- 此时 init.py 就可以派上用场了,当导入一个package时,包内的__init__.py文件会自动执行
在packageA中新建__init.py文件,文件内容如下:
print("__init__函数中的输出")
运行main.py文件,console输出如下:

init.py函数的作用主要有以下几个
- 包的初始化 (改变环境变量、配置logging)
- 管理包接口
- 定义包的信息
对于管理包接口:
在moduleA.py中添加变量x的定义
x = '这是一个测试变量'
print('阿拉上海欢迎侬')
在main.py中导入x,如下,此时环境会报错,这样导入是不行的

解决方法是需要在init模块中,先把x导进来,其中.moduleA 中的点又叫做相对导入

程序没有报红

__all__的作用 前后有两个下划线的变量或者方法,常常用来定义python 的内置行为


对于管理包的信息


导入一个module,module的执行过程

文章有点水,且看且珍惜~
3431

被折叠的 条评论
为什么被折叠?



