19 - 模块和包

一、模块(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 文件,编写测试代码调用发消息和收消息的函数
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值