python--标准库与扩展库的导入与使用

Python014

python--标准库与扩展库的导入与使用,第1张

python标准库和扩展库中的对象必须先导入才能使用,导入方如如下:

1、import 模块名 [as 别名]

使用这种方式将模块导入后,使用时须以‘模块名.对象名’的形式进行访问。

使用方法:

>>>import math

>>>math.gcd(56,64)       #计算最大公约数

8

2、from 模块名 import 对象名 [as 别名]

使用这种方式仅导入明确指定的对象,且 此方式可减少查询次数,提高访问速度

使用方法:

>>>from random import sample

>>>sample(range(100),10)         #指定范围内选择不重复元素

[33, 77, 12, 36, 56, 66, 27, 76, 52, 16]

3、from 模块名 import *

使用此方式可以一次导入模块中的所有对象,直接使用模块中的所有对象而不需要再使用模块名作为前缀,但一般不推荐使用。

使用方法:

>>>from math import *

>>>sqrt(9)      #求平方根

3

让包内导入更加显式,这个功能的一部分设计初衷是,为了帮助脚本解决同名文件出现在模块搜索路径上多个不同位置时的二义性。考虑包目录,这定义了一个名为mypkg 的包,其中含有名为mypkg.main和mypkg.string 的模块。现在,假设模块main试图导入名为string的模块。在 Python 2.X和更早版本中,Python会先寻找mypkg目录以执行相对导入。这会找到并导入位于该处的string.py文件,将其赋值给mypkg.main模块命名空间内的名称string。不过,这一导入的本意可能是要导入Python标准库的string模块。可惜的是,在这些Python版本中,无法直接忽略mypkg.string 去寻找位于模块搜索路径更右侧的标准库中的string模块。此外,我们无法使用完整包导入路径来解决这个问题,因为我们无法依赖在每台机器上的标准链接库路径。换句话说,包中的简单导入可能具有二义性而且容易出错。在包内,我们无法确定imports pam语句指的是包内的模块还是包外的模块。一种可能的后果是,一个局部的模块或包会在不经意间隐藏了sys.path 上的另一个模块。

在实践中,Python使用者可以避免为他们自己的模块重复使用标准库模块的名称(如果需要标准string库,就不要把新的模块命名为string)。但是,一个包还是有可能意外地隐藏标准库模块。再者,Python 以后可能新增标准库模块,而其名称可能刚好就和自己的一个模块同名。而依赖于没有点号开头相对导入的程序代码同样也不容易理解,因为读者可能对希望使用哪个模块而感到困惑。所以我们最好能在代码中显式地指出导入的解析过程。

三种:import 模块名[as 别名]

①import math  //导入标准库math

math.sin(3.4)

import math as mt

mt.sin(3.4)

②from 模块 import 对象

from math import sin  //只导入指定对象

sin(3)

③from 模块名 import *

from math import *      #导入标准库math所有对象