Python学习之Part26.模块的概念

本文详细介绍了Python中的模块,包括内置、扩展和自定义模块。讨论了模块的导入规则,解决重复导入问题,以及如何给模块起别名、导入特定函数。还涉及到模块的命名空间、执行流程,以及如何处理导入时的变量名冲突。同时,文章讲解了自定义模块的使用方法,通过示例展示了如何避免模块中的代码在导入时立即执行。
摘要由CSDN通过智能技术生成

1.python中的模块

 python中的模块本质上就是一个py文件,我们可以使用 import 文件名 的方式导入文件,当导入文件后,我们就可以使用此文件中包含的变量和函数。

 python中的模块分为3种
  1.内置模块:直接导入就可以使用的模块,例如:time,sys,random等模块;
  2.扩展模块:可以使用 pip install 进行安装的第三方模块;
  3.自定义模块:自己写的模块。

 对模块的命名规则与对变量的命名规则相同:由数字、字母、下划线组成且以字母或下划线开头;

 模块的导入规则:
  1.应当在文件开始就导入
  2.先导入内置模块
  3.再导入扩展模块 - 可以使用 pip 安装
  4.自己写的自定义模块

2.模块的相关问题

1.模块的重复导入问题:
 我们都知道,在同一py文件中多次导入相同的模块,最终起作用的其实只有第一次导入,其原因如下:

import sys
print(sys.modules)
print(sys.modules.keys())
# print(sys.path)

执行上面代码,我们可以看到如下的输出:
在这里插入图片描述我们可以看到,在此py文件中导入的模块其模块相关信息都会保存在这个字典中,那么当我们导入模块时,若模块名字已经存在于此字典中则不再导入相同模块,只有模块名不存在时才会导入模块,因此若多次导入相同的模块,只有第一次导入时才生效。

2.自定义模块时pycharm会报错:
当我们新建一个 demo.py 文件,并在其他文件中 import demo 时,会看到pycharm飘红:
在这里插入图片描述
此时并不是说我们的代码出现错误,因为代码是可以正确运行的 ,那么出现这种现象的原因如下:

import sys
print(sys.path)

执行上面代码,我们会看到一个列表,列表中的元素是不同的路径:
pycharm 编辑器在寻找一个文件时,默认会以 当前在pycharm的打开的工程目录为根目录,在此目录下边寻找需要导入的模块对应的 py 文件;
 1.若找到了则不会报错还能自动补全;
 2.若没找到,会报错,但是当我们运行代码时,解释器是可以解释的,代码不会出错;
当我们自定义的模块py文件若在 sys.path 中的路径下能找到,代码就可以执行。

3.当我们在导入一个模块时,发生了哪些事?
 在对一个模块进行导入时,发生了以下流程:
1.找到模块 - 先从 sys.modules 里查看模块是否已经被导入,
  - 若被导入则不再重复导入,
  - 若没有被导入,则依据 sys.path 中的路径寻找所要导入的模块;
2.找到模块对应的 py 文件后,创建这个模块的命令空间;
3.执行文件,将文件中的名字都放进命名空间里 - 与其他文件的命名空间相隔离.

3.模块的使用

1.给模块起别名:将模块重命名
 格式:import 模块名 as 模块别名

  给模块起别名后,就可以通过 模块别名.函数 的方式来调用模块中的方法,例如:

import time as t    # 给time模块起别名为 t --> t == time
print(t.time())     # t.time() ==
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值