什么是模块
在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写 可维护 的代码,我们把有一定关联的函数分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。
使用模块有什么好处?
在Python中,大多数模块都是由一个.py文件构成,这样的好处是——
- 提高了代码的可维护性。
- 一个模块编写完毕,就可以被其他地方引用。
我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。而这个第三方模块,就是传说中的——巨人的键盘、大佬的大腿 。
吉米:是巨人的肩膀。
我们可以通过庞大的开源社区,获取到这些大腿,从而不必重复的编写那些基础的功能模块。(其实很多大公司的代码都已经是模块化的,只不过C为首的一派基本不开源,不像python、R、Ruby这类语言。)
避免函数名冲突
使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。
但是也要注意,尽量不要与 内置函数 名字冲突。
Python还能按目录来组织模块的Package方法,来避免模块名相同。
举个例子——
__init__.py
deal.py
output.py
__init__.py
deal.py
output.py
以上的模块可能名字上看上去相同,但内部是不一样的逻辑,那么这时候,我们需要另外用一个包(可以理解为项目文件夹),将它们分别包裹起来。
package-#001
├─ __init__.py
├─ deal.py
└─ output.py
package-#002
├─ __init__.py
├─ deal.py
└─ output.py
这样就可以将原来的deal.py区分为package-#001.deal和package-#002.deal。从避免了同名的deal模块冲突了。
注意,每一个包目录下面都会有一个 init.py 的文件
这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。init.py可以是空文件,也可以有Python代码,因为__init__.py
本身就是一个模块,而它的模块名就是包的名字。
注意事项
- 模块名要遵循Python变量命名规范,不要使用中文、特殊字符;
- 模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块。
检查方法是在Python交互环境执行import (你起的名字),若成功则说明系统存在此模块