Python 模块笔记
【摘要】 模块相关知识笔记
模块分为:
内置模块;
扩展模块;
自定义模块;
先从sys.modules 里面查看是否已经被导入
如果没有被导入,就依据sys.path路径去寻找模块
找到了在导入
创建这个模块的命名空间
执行文件,把文件中的名字都放到命名空间里
所有的模块导入都应该尽量的往上写
内置模块
扩展模块
自定义模块
模块不会重复被导入:sys.moudles
从哪儿导入模块:sys.path
sys.moudles记录了所有被导入的模块
sys.path 记录了导入模块的时候寻找的所有路径
import
import 模块名
模块名.变量名 和本文件中的变量名完全不冲突
import 模块名 as 重命名的模块名:提高代码的兼容性
import 模块1,模块2
from import
from 模块名 import 变量名
直接使用 变量名 就可以完全操作
如果本文中有相同的变量名会发生冲突
from 模块名 import 变量名字 as 重命名变量名字
from 模块名 import 变量名1,变量名2
from 模块名 import *
将模块中的所有变量名都放到内存中
如果本文件中有相同的变量名会发生冲突
from 模块名 import * 和 __all__ 是一对
没有这个变量就会导入所有的名字
如果有all 只导入all列表中的名字
__name__
在模块中 有一个变量__name__ ,
当我们直接执行这个模块的时候,__name__ == '__main__'
当我们执行其他模块,在其他模块中引用这个模块的时候,这个模块中的__name__ == '模块的名字'
序列化模块:
数据类型转换成字符串的过程就是序列化。
序列化 -- 转换一个字符串数据类型
序列 --字符串
应用场景:
数据存储
网络上传输的时候
从数据类型 --> 字符串的过程 序列化
从字符串 --> 数据类型的过程 反序列化
json 数字、字符串、列表、字典、元组
通用的序列化格式
只有很少的一部分数据类型能够通过json转换成为字符串
dumps
loads
dump 和文件有关
load 不能load多次
picke
所有的python中的数据类型都可以转换成为字符串形式
pickle序列化的内容只有python能够理解
且反序列化依赖python代码
方法和json一样
dump和load的时候 文件时rb 或者 wb打开的
shelve
序列化句柄
使用句柄直接操作,非常方便
open方法
open方法获取一个文件句柄
操作和字典类似
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)