首页 技术 正文
技术 2022年11月20日
0 收藏 710 点赞 2,999 浏览 1446 个字

模块:

模块的分类:

第三方模块/扩展模块:没在安装python解释器的时候安装的那些功能

自定义模块:你写的功能如果是一个通用的功能,那你就把它当做一个模块

内置模块:安装python解释器的时候跟着装上的那些方法

什么是模块:

  • 有的功能开发者自己无法完成,这样的话需要借助已经实现的函数\类来完成这些功能
  • 你实现不了的功能都由别人替你实现了
  • 操作系统打交道
  • 和时间
  • 1000取随机数
  • 压缩一个文件
  • 和网络通信
  • 别人写好的一组功能 文件夹/py文件/C语言编译好的一些编译文件

为什么要有模块?

  • 分类 管理方法
  • 节省内存
  • 提供更多的功能

模块的创建和导入;

import my_module  要导入一个py文件的名字,但是不加.py后缀名
import my_module  模块的名字必须要满足变量的命名规范
一般情况下 模块都是小写字母开头的名字

PEP8规范:

所有的模块导入都应该尽量放在这个文件的开头
模块的导入也是有顺序的
先导入内置模块
再导入第三方模块
最后导入自定义模块

import

import 的时候发生了什么
在import的时候命名空间的变换
重命名 as
一行导入多个模块

from … import …

from import 的时候发生了什么 仍然相当于执行了整个py文件
在import的时候命名空间的变换

python-模块详解

python-模块详解

重命名 as
一行导入多个名字 导入了什么 就能使用什么 不导入的变量 不能使用 不导入并不意味着不存 而是没有建立文件到模块中其他名字的引用
from 模块 import *
* 和 __all__ 的相关性 __all__可以控制*导入的内容

from my_module import *
login()
from my_module import name
print(name)

模块相关的其他知识

1.把模块当成脚本运行 : 从本模块中反射本模块中的变量

if __name__ == ‘__main__’:
所有不需要调用就能执行的内容

import sys
getattr(sys.modules[__name__],'要反射的变量名')

2.模块搜索路径 sys.path

模块没导入之前在哪儿? 在硬盘上

安装python
python整个包的结构不变
它会记录一个安装目录
其他所有目录都是根据安装目录来写死的
除了你当前运行的脚本所在的目录和pycharm在你打开项目的时候给你添加进来的项目根目录
剩余所有都是python内置的目录
内置模块的导入
第三方模块的导入
内置模块的导入和第三方模块的导入都不需要你操心了
自定义的模块能否被导入
看sys.path当中 是否存在你要导入的文件 所在的目录

总结:
模块的搜索路径全部存储在sys.path列表中,导入模块的顺序,是从前到后找到一个符合条件的模块就立即停止不再向后寻找
如果要导入的模块和当前执行的文件同级,直接导入即可
如果要导入的模块和当前执行的文件不同级,需要把要导入模块的绝对路径添加到sys.path列表中

3.pyc编译文件

python的执行
解释 – 编译
当一个文件作为一个脚本被导入的时候
就会在这个文件所在的目录的__pycache__下生成一个编译好的文件
为了之后导入这个文件的时候直接读这个编译好的pyc文件就可以
可以节省一些导入时候的时间

4.重新加载模块 已经导入的模块即便被修改在程序执行过程中也不会生效

importlib.reload(aaa) # 表示重新加载
reload这种方式可以强制程序再重新导入这个模块一次
非常不推荐你使用

5.模块的循环引用 – 不允许

在模块的导入中 不要产生循环引用问题
如果发生循环导入了
就会发现明明写在这个模块中的方法,确偏显示找不到

    

    					
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,965
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,486
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,331
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,114
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,747
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,781