目录
一、模块(Moudle)的概念
1、每一个一“.py”结尾的Python代码文件都是一个模块。
2、“
模块名”同样也是一个
标识符,需要符合标识符的命名规则。
3、在模块中定义的“全局变量”、“函数”、“类”都是提供给外界直接使用的工具。
二、模块的作用
1、模块就好比是工具包,要想使用这个工具包中的工具,就需要先导入模块。
-
在模块中 别人书写好的功能(变量, 函数, 类),我们可以拿 来直接使用。想要使用别人模块中写好的功能,需要先导入别人写好的功能。
-
我们写的代码文件, 作为模块让别人使用。代码 文件名(模块名) 必须满足标识符的规则,别人才能使用。
三、模块导入方式
1、模块导入的两种方式
2、import
-
语法格式 :
注意:
允许一行导入多个模块。一行导入多个模块时,不同模块名之间,使用英文逗号隔开。
-
使用场景:
一次性 把模块中 所有工具 全部导入。
多用于 导入系统中 常用的 模块和功能。
-
模块中工具的 使用方式:
模块名.模块提供的工具
-
模块起别名方式:
as 关键字 。
使用场景:
如果模块的名字太长,可以在导入时,使用 as 指定模块的名称,以方便在代码中使用。
注意:
(1)模块别名应该符合大驼峰命名法。
(2)如果导入模块时取了别名,那么使用模块中工具的语法是:别名.
模块提供的工具 。
3、from...import
-
语法格式:
注意:
(1)允许一行导入同一模块的多个工具:from 模块名 import 工具名1,工具明2...
(2)一行导入同一模块的多个工具时,工具名用英文逗号隔开。
(3)如果两个模块,存在同名的工具,那么后导入模块的工具,会覆盖掉先导入的工具。
-
使用场景:
如果希望 从某一个模块中,导入 部分 工具,就可以使用
from...import。
多用于 导入自己书写的,或者是第三方的模块。
-
模块中工具的使用方式:
功能名()
-
快捷键:
Alt+ 回车
4、两种模块导入方式的区别
-
import:一次性 把模块中 所有工具 全部导入,并且通过 模块名/别名. 模块提供的工具 访问。
-
from...import:不需要通过 模块名/别名.工具 的方式调用,可以直接使用模块提供的工具。
5、举例说明-两种模块导入方式
-
需求
(1)定义一个模块 tools.py , 在模块中定义一个函数
sum_2_num(), 可以对两个数字求和。
(2)新定义一个代码文件, 调用tools.py 文件中的
sum_2_num() 函数, 对 10 和 20 求和。
四、模块的导入顺序
1、Python解释器导入模块时的顺序
-
在导入模块的时候, 会先从代码所在的目录进行查找,有的话直接导入。
-
如果当前目录下没有,回去Python系统的目录查找并导入。
-
如果都没有找到,则报错。
2、注意
-
给模块命名时,务必不要和系统模块重名,否则会直接影响系统模块的导入。
五、__name__属性
1、语法格式
2、作用
-
导入模块的时候,会执行模块中的代码。
-
处于该条件下的代码,只有是在当前模块内执行时,才会被执行。
3、使用场景
-
如果导入模块的时候,模块中的部分代码不想被执行,可以使用__name__来解决。
-
一般情况下,都需要将 模块内的调试代码置于该条件下,以防止 被其他模块导入后,调试代码也参与运行。
4、
__name__是Python中的内置属性(变量的值是自动维护的),每个代码文件中,都有这个变量。主要作用是记录一个字符串的信息。
-
当被其他模块导入后运行时,__name__属性值为模块名(文件名)。
-
当在模块内运行时,__name__属性值为为__main__。
注意:在模块中 直接右键运代码文件, __name__ 变量的值是
'__main__'。
六、包
1、什么是包
包:(Package)是一个包含多个模块的特殊目录。(可以理解为是一个文件夹。)
2、包的作用
-
Python文件较多时,方便分目录管理维护。
3、包名命名规则
-
命名方式与 变量名一致。
4、包的创建方式:
-
第一种:在pycharm中支持直接创建包。 包创建步骤:工程根目录上鼠标 右键 -> New -> Python Package。(包创建成功后,会自动生成一个 __init__.py 文件 )
-
第二种:将多个模块放在一个目录中集中管理, 并在这个目录中创建 一个 __init__.py 文件(可以什么都不写), 就是一个包。
5、导包的常用方式
-
方式一
语法格式:
import 包名.模块名
使用方式:
包名.模块名.工具名
注意:该方式将包下该模块中的所有工具一次性导入了。
-
方式二
语法格式:
from 包名 import 模块名
使用方式:
模块名.工具名
注意:该方式将包下该模块中的所有工具一次性导入了。
-
方式三
语法格式:
from 包名.模块名 import 工具名
使用方式:
工具名
注意:该方式将包下指定模块下的指定工具导入了。
6、举例说明-包操作案例
-
需求:
(1)新建一个 hm_message 的 包
(2)在目录下,新建两个文件 send_message 和 receive_message
(3)在 send_message 文件中定义一个 send 函数
(4)在 receive_message 文件中定义一个 receive 函数
(5)在外部定义一个 test_message 文件,编写测试代码调用发消息和收消息的函数