Python默认安装仅包含部分基本或核心模块,启动时也仅加载了基本模块,在需要时再显式地加载(有些模块可能需要先安装)其他模块,这样可以减小程序运行的压力,且具有很强的可扩展性。Python中导入模块的方法主要有:
(1)import 模块名 [as 别名]
使用这种方式导入以后,使用时需要在对象之前加上模块名作为前缀,也就是必须以“模块名.对象名”的方式进行访问。也可以为导入的模块设置一个别名,然后就可以使用“别名.对象名”的方式来使用其中的对象了。
>>> import math
>>> math.sin(0.5) #求0.5(单位是弧度)的正弦
0.479425538604203
>>> import random
>>> x = random.random() #获得[0,1) 内的随机小数
>>> n = random.randint(1,100)#获得[1,100]区间上的随机整数
>>> import numpy as np #导入模块并设置别名
>>> a = np.array((1,2,3,4)) #通过模块的别名来访问其中的对象
>>> a
[1 2 3 4]
(2)from 模块名 import 对象名[ as 别名]
使用这种方式仅导入明确指定的对象,并且可以为导入的对象起一个别名。这种导入方式可以减少查询次数,提高访问速度,同时也减少了程序员需要输入的代码量,不需要使用模块名作为前缀。例如:
>>> from math import sin #只导入模块中的指定对象
>>> sin(3)
0.1411200080598672
>>> from math import sin as f #给导入的对象起个别名
>>> f(3)
0.141120008059867
(3)上面第二种用法比较极端的情况是一次导入模块中所有对象,例如:
>>> from math import *
>>> sin(3) #求正弦值
0.1411200080598672
>>> gcd(36, 18) #最大公约数
18
这种方式简单粗暴,虽然写起来比较省事,可以直接使用模块中的所有函数和对象而不需要再使用模块名作为前缀,但一般并不推荐使用。如果多个模块中有同名的对象,这种方式将会导致只有最后一个导入的模块中的同名对象是有效的,而之前导入的模块中该对象无法访问。
最后,作为一个建议或者约定俗成的习惯,每个import语句只导入一个标准库或扩展库,并且最好按照标准库、扩展库、自定义库的先后顺序进行导入。