Python 模块笔记

举报
Yuchuan 发表于 2020/02/11 18:03:07 2020/02/11
【摘要】 模块相关知识笔记
模块分为:
    内置模块;
    扩展模块;
    自定义模块;
先从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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。