模块的导入
模块化设计的好处: 代码复用性高, 写好的模块可以被反复调用, 使用. 模块的导入是: 在本地模块中使用其他模块
1. import语句的导入
import语句的基本语法格式如下:
import 模块名 #导入一个模块
import 模块1,模块2 #导入多个模块
import 模块名 as 模块别名 #导入模块并使用新的名字
import的加载模组四个通用类别:
- 使用python编写的代码(.py文件)
- 已被编译为共享库或DLL的C, C++扩展
- 包好一组模块的包
- 使用C编写并连接到python解释器的内置模块
我们一般通过import语句实现功能模块的导入和使用, import本质上是使用内置函数__import__()
当我们通过import导入一个模块时, python解释器进行执行, 最终会生成一个对象, 这个对象就代表了被加载的模块
1 import math 2 print(id(math)) 3 print(type(math))
由上, 我们可以看到math模块被加载后, 实际上会生成一个moudle类对象, 该对象被math变量引用, 我们可以通过math变量引用模块中的所有内容
我们通过import导入多个模块, 本质上也是生成多个moudle类对象而已.
有时候, 我们也需要给类对象起一个别名, 本质上, 这个别名仅仅是新创建一个变量引用加载的模块对象而已
1 import math 2 print(id(math)) 3 print(type(math)) 4 import math as m 5 print(id(m))
2. from...import导入
Python中可以使用from...import导入模块中的成员, 基本语法格式如下:
from 模块名 import 成员1, 成员2
如果可以希望导入一个模块中的所有成员:
from 模块名 import *
3. import语句和from...import语句的区别
import导入的是模块, from...import导入的是模块中的一个函数/一个类
如果进行类比的话, import导入的是文件, 我们使用该文件下的内容, 必须前面加文件名称, from...import导入的是文件下的内容, 我们直接使用这些内容即可, 前面不需要加文件名称
1 import math 2 print(id(math)) 3 print(type(math)) 4 import math as m 5 print(id(m)) 6 from math import pi,sin 7 b = sin(3.14) 8 print(b)