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