1. 模块的引入
Python 中要用关键字import来引入某个模块。比如要引用模块math,就要在文件的开头用import math来引入。
在调用math模块中的函数时,引用格式为:
模块名.函数名
因为这种调用方式可以避免特殊情况的发生。比如在多个模块中可能含有相同名称的函数,这时如果只是通过函数名来调用,程序无法知道是要调用哪个函数。所以如果用上述方法引入模块的时候,调用函数必须加上模块名。
例如:
import math
print(fabs(-2))
输出结果:
NameError: name 'fabs' is not defined
fabs()必须加上math前缀,例如:
import math
print(math.fabs(-2))
输出结果:
2
有些时候我们只需要用到模块中的某个函数,这时不需要导入整个模块,只需要导入该函数即可。
语句格式如下:
from 模块名 import 函数名1,函数名2....
通过这种方式导入函数的时候,调用函数时就只能给出函数名,而不能给出模块名。这种导入函数的方式会有一种缺陷,就是当两个模块中含有相同名称函数的时候,后面一次导入的函数会覆盖前一次导入的函数。
例如,假如模块A中有函数function(),模块B中也有函数function()。如果先导入模块A中的function(),后导入模块B中的function(),那么当我们在后面调用function()函数的时候,程序会去执行模块B中的function()函数。
如果想一次性引入模块math中所有的函数,可以通过如下方式导入:
from math import *
2. 自定义模块
每个 Python 文件都可以看作一个模块,模块的名字就是 Python 文件的名字。所以我们完全可以自己写一个 Python 文件,作为自定义模块。
例如,我们编写了my_module.py文件,里面定义了plus()函数:
# my_module.py
def plus(a,b):
return a+b
之后我们就可以在其他 Python 文件中先引入my_module,然后通过my_module.plus(a,b)来调用my_module.py文件中的plus()函数。我们也可以直接通过from my_module import plus来导入plus()函数。
3. 小结
使用模块可以大大提高代码的可维护性,而且也增加了代码的利用率。当一个模块编写完毕之后,在其他 Python 文件中导入该模块,模块中的函数就可以被其他 Python 文件使用了。