本节书摘来自异步社区《Abaqus GUI程序开发指南(Python语言)》一书中的第2章,第2.10节,作者: 贾利勇 , 富琛阳子 , 贺高 , 周正光 更多章节内容可以访问云栖社区“异步社区”公众号查看。
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();当使用后面几种模块导入方法时,函数可以直接调用,不需要使用模块名作为前缀。