在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python要调用sqrt函数,那么必须用import关键字来引入这个模块。
import
在Python中用关键字import
来引入某个模块,比如要引入模块math,就可以在文件最开始的地方用import math
来引入,形如:
import module1,module2
引用模块中的函数时,必须这样引用:
模块名.函数名()
比如:
import math
print(sqrt(4)) #错误
print(math.sqrt(4))
from…import
from 模块名 import 函数名1,函数名2,变量1,变量2
通过这种方式引入模块,只会引入模块中某些函数或变量,不会全部引入。
如:
from fib import fibonacci # 引入斐波那契函数
不会把整个fib
模块整个模块导入到当前的命名空间中,只会将fib
中到fibonacci
单个引入。
用这种方式导入模块,在引用模块函数时,不必再加模块名:
from math import sqrt
print(sqrt(4))
from…import *
当把一个模块的所有内容全都导入到当前的空间时,可以这样声明:
from 模块名 import *
注意:
通过这种方式引入的时候,调用函数只能给出函数名,不能给出模块名,但当两个模块中含有相同名称函数的时候,后面一次引入会覆盖前一次引入。假如模块A中有函数function(),模块B中也有函数function(),如果引入A中的function在先、B中的function在后,那么当调用function函数时候,会直接执行B中的function函数。
import … as
import 模块名 as 别名
as
作用:重命名模块名,即为模块名起个别名
import math as it
it.sqrt(4)
math.sqrt(4) # 错误
定位模块
当导入一个模块时,Python解析器对模块位置的顺序是:
- 当前目录
- 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录
- 如果都找不到,Python会查看默认路径。
- 模块搜索路径存储在system模块的sys.path变量中,变量里包含当前目录,PYTHONPATH和由安装过程定位的默认目录。