什么是模块?modules(.py)在Python中一个扩展名.py的文件就是一个模块
在前面的几个章节中我们基本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。
为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。
模块可以包含
函数
类 类属性 类方法 静态方法 实例属性
语句
模块与函数的关系:一个模块中可以包含N多个函数
使用模块的好处?
方便其他程序和脚本的导入并使用
避免函数名和变量名冲突
提高代码的可维护性
提高代码的可重用性
创建模块
新建一个.py文件,名称不要与Python自带模块重名
进入模块所有的目录:
导入模块
import 模块名称 [as 别名] 【导入模块所有】
from 模块名称 import 函数/变量/类【只是导入了函数/变量/类,不是整个模块】
以主程序形式运行
在每个模块的定义中都包括一个记录模块名称的变量__name__,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其他程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的__name__变量的值为__main__
if __name__='__main__':
pass
模块中有运行的print
其他模块有调用这个模块,结果原模块的输出也出来了,如何处理?
将模块改成:
def add(a, b):
return str(a) + str(b)
if __name__ == '__main__': # 只有当点击运行strAdd模块时,才会执行
print(add('jj', 'ooo'))
再次运行,此时在其他非主程序的模块运行,就不会有原模块的输出了
包 package
一个python包含很多包,包下有模块。
包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下。
作用:
代码规范
避免模块名称冲突
包与目录的区别
包含__init__.py文件的目录称为包,包是特殊的目录
目录里通常不包含__init__.py文件
![]()
包的导入:import 包名.模块名
在包下创建一个模块module_A,然后模块下有一个变量a
在test引入包
或设立模块module_A的别名m
Python常用的内置模块