较大的工程常常由多个模块组成,这些模块有负责计算的,有负责绘图的,有负责图形用户界面的等等,多模块协同合作,完成比较复杂的工作任务。在一个模块中使用其他模块的函数或类,需要首先导入该模块。
使用内置模块和第三方模块
【Excel VBA】
Excel VBA中可以引用第三方模块扩展自己的功能,请参见11.2节的内容。
【Python】
使用内置模块中的函数和类,需要首先用import命令导入该模块,语法格式为:
import module1[, module2[, … moduleN]]
调用模块中的函数时,这样引用
模块名.函数名
如果只引入模块中的某个函数,使用from…import语句。
下面在模块中导入math模块,调用它的sin函数、cos函数和常量pi计算给定30度角的正弦和余弦。该文件位于Samples目录下的Ch01子目录中,文件名为sam01-30.py。
import math #导入math模块
from math import cos #从math模块中导入cos函数
angle=math.pi/6 #用常量pi计算30度角
a=math.sin(angle) #用math.sin()函数计算30度角的正弦
b=cos(angle) #用cos函数计算30度角的余弦
print(a) #输出正弦值
print(b) #输出余弦值
在Python IDLE文件脚本窗口,在"Run"菜单中单击"Run Module"选项,则IDLE命令行窗口显示下面的结果:
>>> = RESTART: …\Samples\ch01\sam01-30.py
0.49999999999999994
0.8660254037844387
使用其他自定义模块
【Excel VBA】
Excel VBA中一个模块中的过程和函数可以调用其他模块中Public关键字定义的变量、过程和函数。
图11-1所示的模块1中,将Sum函数前面的Private关键字改为Public,现在它是公共函数,其他模块中也可以进行调用。添加模块2,添加代码:
Sub Test()
Debug.Print Sum(2, 8)
End Sub
运行该过程,在立即窗口中输出结果10。
【Python】
对于自定义模块而言,因为模块文件保存的位置不确定,直接使用import语句可能会导致出错。一般情况下,使用import语句导入模块后,Python会按照以下顺序查找指定的模块文件:
• 当前目录,即该模块文件所在的目录;
• PYTHONPATH(环境变量)指定的目录;
• Python默认的安装目录,即Python可执行文件所在的目录。
所以,只要自定义模块文件放在这3种目录下,就能被Python找到。这里面用得最多的,是第1种目录,即将导入和被导入的模块放在同一个目录下。