上QQ阅读APP看书,第一时间看更新
1.6 标准库与扩展库中对象的导入与使用
Python标准库和扩展库中的对象必须先导入才能使用,导入方式如下。
● import模块名 [as 别名]。
● from模块名import对象名[ as 别名]。
● from模块名import*。
1.6.1 import模块名 [as 别名]
使用import模块名[as 别名]这种方式将模块导入以后,使用时需要在对象之前加上模块名作为前缀,必须以“模块名.对象名”的形式进行访问。如果模块名字很长,可以为导入的模块设置一个别名,然后使用“别名.对象名”的方式来使用其中的对象。以下为import模块名[as 别名]导入对象的用法。
> > > import math #导入标准库math > > > math.gcd(56, 64) #计算最大公约数 8 > > > import random #导入标准库random > > > n = random.random() #获得[0,1) 内的随机小数 > > > n = random.randint(1,100) #获得[1,100]区间上的随机整数 > > > n = random.randrange(1, 100) #返回[1, 100)区间中的随机整数 > > > import os.path as path #导入标准库os.path,设置别名为path > > > path.isfile(r'C:\windows\notepad.exe') True > > > import numpy as np #导入扩展库numpy,设置别名为np > > > a = np.array((1,2,3,4)) #通过模块的别名来访问其中的对象 > > > a array([1, 2, 3, 4]) > > > print(a) [1 2 3 4]
根据Python编码规范,一般建议每个import语句只导入一个模块,并且要按照标准库、扩展库和自定义库的顺序进行导入。
1.6.2 from模块名 import对象名[ as 别名]
使用from模块名import对象名[ as 别名]方式仅导入明确指定的对象,并且可以为导入的对象起一个别名。这种导入方式可以减少查询次数,提高访问速度,同时也可以减少程序员需要输入的代码量,不需要使用模块名作为前缀。以下为from模块名import对象名[as 别名]的用法。
> > > from random import sample > > > sample(range(100), 10) #在指定范围内选择不重复元素 [24, 33, 59, 19, 79, 71, 86, 55, 68, 10] > > > from os.path import isfile > > > isfile(r'C:\windows\notepad.exe') True > > > from math import sin as f #给导入的对象sin起个别名 > > > f(3) 0.1411200080598672
1.6.3 from模块名 import*
使用from模块名import *方式可以一次导入模块中的所有对象,简单粗暴,写起来也比较省事,可以直接使用模块中的所有对象而不需要再使用模块名作为前缀,但一般并不推荐这样使用。以下是from模块名import*的用法。
> > > from math import * #导入标准库math中所有对象 > > > sin(3) #求正弦值 0.1411200080598672 > > > sqrt(9) #求平方根 3.0 > > > pi #常数π 3.141592653589793 > > > e #常数e 2.718281828459045 > > > log2(8) #计算以2为底的对数值 3.0 > > > log10(100) #计算以10为底的对数值 2.0 > > > radians(180) #把角度转换为弧度 3.141592653589793