模块的导入

模块化设计的好处: 代码复用性高, 写好的模块可以被反复调用, 使用. 模块的导入是: 在本地模块中使用其他模块

1. import语句的导入

import语句的基本语法格式如下:

import 模块名     #导入一个模块

import 模块1,模块2    #导入多个模块

import 模块名 as 模块别名     #导入模块并使用新的名字

import的加载模组四个通用类别:

  1. 使用python编写的代码(.py文件)
  2. 已被编译为共享库或DLL的C, C++扩展
  3. 包好一组模块的包
  4. 使用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)