第160课时:包的概念 创建包 导入包.
1包 package:
1.1包 package 的概念和结构:
当一个项目中有很多个模块时,需要再进行组织,我们将功能类似的模块放到一起,形成了包。
包 本质上就是一个 必须有 init.py 的文件夹。
init.py 文件这个文件就是区别包于普通文件夹的一个重要特点。
典型结构如下:
包下面可以包含 模块(module) 也可以含有 子包 subpackage
就像文件夹下面有文件夹一样:
1.2在python内创建包:
在python1中能够创建包很简单, 在项目图标上右键
选择new—python package 便可
这个__init__主要的作用就是标识这个文件夹是包。
一个包:
一个叫aaa的包,内有一个子包:bbb
1.3导入包操作 和其本质:
上一节的包结构如图示:
1 我们要导入 bbb子包中的b1 模块,方式如下
**Import 包名.子包名.目标模块名**
import aaa.bbb.b1
2 from import,方式如下
**From包名.子包名 Import 目标模块名**
from aaa.bbb import b1
3 from import,方式直接导入函数
From包名.子包名. 目标模块名 Import 函数名
from aaa.bbb.b1 import aa
测试:
从模块中直接调用某个函数
from aaa.bbb.b1 import aa
aa()
hello
f@k
调用包中的模块:
import aaa.bbb.b1 as fu
fu.aa()
hello
f@k
import aaa.a1 as c
c.a11()
hhh
导入包的本质就是
导入包内的__init__()文件。
也就是说 import pack1 意味着
执行了 pack下面的__init__().py 文件。
可以在__init__().py中批量导入我们需要的模块,不需要挨个导入一个个模块
测试:
我们设置aaa模块中的__init__()文件如下所示,让其导入数学模块 和 海龟绘图模块
这表示,当导入aaa包时就已经将math模块给导入进去了,并执行了语句,
import aaa as c
print(c.math.pi)
3.141592653589793
hi
错误调用:
import aaa as c
print(math.pi)
报错!!!!!!!!!