2.10 模块

一般来说,当退出Python编译器之后再次重新进入时,之前创建的一切变量或者函数就全部丢失了。如果希望长时间地保存程序,方便随时调用,就需要用到模块的概念。

模块一般是以.py为后缀的文件,文件包括函数定义和声明,文件名即为模块名。例如将下列代码存储到一个名为Add.py的文件中即创建了一个名为Add的模块。

【实例2.36】模块的定义

def add(x,y): 
  add=x+y 
  print 'the sum of x and y is %f.' % add 
  print 'x is %f.' % x

上述模块创建完成后,将Add.py文件存储到Abaqus当前工作目录下,然后点击Abaqus/CAE主窗口下方按键,进入Abaqus GUI命令行交互窗口,在GUI命令交互行输入以下指令并查看计算结果。

>>> import Add         #导入Add模块 
>>> Add.add(8,9)        #调用Add模块中的add函数 
the sum of x and y is 17.000000. 
x is 8.000000.

该实例中给出了模块导入及模块函数调用的方法,除了上述调用方法之外,还可以使用以下方式调用函数。

【实例2.37】模块的调用

>>> from Add import add 
>>> add(4,5) 
the sum of x and y is 9.000000. 
x is 4.000000. 

>>> from Add import * 
>>> add(4,5) 
the sum of x and y is 9.000000. 
x is 4.000000 

>>> from Add import add as A 
>>> A 
<function add at 0x7F901970> 
>>> A(4,8) 
the sum of x and y is 12.000000. 
x is 4.000000.

由上述几个实例可以看出,模块导入有以下几种格式。

(1)import module_name:导入整个模块。

(2)from module_name import function_name:从模块中导入某个函数类。

(3)from module_name import *:导入模块中的所有函数和类。

(4)from module_name import function_name as short_name:导入模块中的某个函数,并用简写的函数名short_name替代原函数名function_name,一般适用于函数名较长的情况。

第一种模块导入方式和后面几种导入方式的区别是,当使用第一种模块导入方法并调用其内部函数时,函数名之前必须使用模块名module_name作为前缀,即module_name.function_name();当使用后面几种模块导入方法时,函数可以直接调用,不需要使用模块名作为前缀。