在计算机程序的开发过程当中,随着程序代码越写越多,在一个文件里代码就会愈来愈长,愈来愈不容易维护。python
为了编写可维护的代码,咱们把不少函数分组,分别放到不一样的文件里,这样,每一个文件包含的代码就相对较少了,不少编程语言都采用这种组织代码的形式。编程
在Python中,以个.py文件就能够称之为一个模块(Module)。编程语言
一、最大的好处是大大提升了代码的可维护性。其次,编写代码没必要从零开始。当一个模块编写完毕,就能够被其余地方引用。咱们在编写程序的时候,也常常引用其余模块,包括Python内置的模块和来自第三方的模块。函数
二、使用模块还能够避免函数名和变量名冲突。每一个模块有独立的命名空间,所以相同名字的函数和变量彻底能够分别存在不一样的模块中,因此,咱们本身在编写模块时,没必要考虑名字会与其余模块冲突。code
模块分为三种:ip
一、内置标准模块(又称标准库)执行help(‘modules’)查看全部python自带模块列表。开发
二、第三方开源模块,可经过pip install 模块名
联网安装。it
三、自定义模块。pip
import module_a #导入 from module import xx from module.xx.xx import xx as rename #导入后重命令 from module.xx.xx import * #导入一个模块下的全部方法,不建议使用 module_a.xxx #调用
注:模块一旦被调用,即至关于执行了另一个py文件里的代码。io
这个最简单,建立一个.py文件,就能够称之为模块,就能够在另一个程序里导入。
你会发现,本身写的模块只能在当前路径下的程序里才能导入,换一个目录再导入本身的模块就报错说找不到了,这是为何?
这与导入模块的查找路径有关:
import sys print(sys.path)
输出(注意:上述代码在不一样的电脑可能输出的不太同样)
['', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
你导入一个模块时,Python解释器会按照上面列表顺序依次到每一个目录下去匹配你要导入的模块名,只要在一个目录下匹配到了该模块名,就马上导入,再也不继续日后找。
注:列表第一个元素为空,即表明当前目录,因此你本身定义的模块在当前目录会被优先导入。
咱们本身建立的模块若想在任何地方都能调用,那就得确保你的模块文件至少在模块路径的查找列表中。
咱们通常把本身写的模块放在一个带有“site-packages”字样的目录里,咱们从网上下载安装的各类第三方的模块通常都放在这个目录。