• 模块初识


    模块

    概念:一系列功能的集合体

    定义:创建一个py文件就是一个模块,该py文件名就是模块名

    使用:在要使用模块的文件中,通过  import 模块名  来导入模块

    模块的四种存在方式:

    1. 使用python编写的.py文件(任何一个py文件都可以作为模块)
    2. 包:一堆py文件的集合体
    3. 使用C编写并链接到python解释器的内置模块
    4. 已被编译为共享库或DLL的C或C++扩展

    导入模块: import module(模块)

    1. 编译执行模块所对应的py文件,形成对应的pyc文件
    2. 产生该模块自己的全局名称空间
    3. 在使用该模块的全局名称空间中产生一个名字(导入的模块名)
    import module
    aaaaa = module
    import module
    a = 888
    module.b()
    
    module.c()
    
    print(aaaaa.a)
    
    print(a)
    
    # 注: # 1.每一个文件都会产生自己的全局名称空间,且相互不影响 # 2.多次导入,只会编译执行模块一次,将其加载到内存,之后的都是直接对名字的引用

    起别名:

    • 通过as关键字可以给模块起别名: 模块名一旦起别名,原模块名就不能再使用
    # 1.可以简化模块名字
    import mmmmmmmmmmmmmmmmmm3 as my_m3
    print(my_m3.num)
    # 2.可以统一功能
    cmd = input('数据库选择 1:mysql | 2:oracle:')
    if cmd == '1':
        import mysql as db
        # mysql.excuse()
    else:
        import oracle as db
        # oracle.excuse()
    db.excuse()

    from导入

    1. from 模块名 import 名字1, 名字2, ..., 名字n(可以指名道姓导入模板中所有想导入的名字)
    2. from 模块名 import *(导入的是模块中的__all__这个列表)
      2. 1、系统默认该列表不会收录_开头的名字
      2. 2、可以自定义__all__列表来规定外界通过*可以导入的名字

      注意:

    不建议直接导入 *,因为可读性差,且极容易出现变量重名

    • 模块中有 名字a
    • from 模块名 import *
    • 可以使用模块中的a
    • a = 20
    • 模块中的a就被覆盖了,且在代码上还不能直接看出
    其别名
    • from 模板名 import 名字1 as 别名1, ..., 名字n as 别名n

    自执行与模块区别

      通过__name__来判断

    • 在py文件作为模块被使用时,__name__为模块名
    • 在py文件自执行时,__name__为字符串 '__main__'
    print("共有逻辑")
    if __name__ == '__main__':
        # 所有自执行的逻辑
        print("m6: 我是自执行的")
        a = 10  # 产生的是全局的名字
    else:
        # 所有模块的逻辑
        print("m6: 我被导入执行的")
        print(a)  # 会报错:走else就不可能走if,所以a压根没产生
  • 相关阅读:
    python3-cookbook笔记:第十三章 脚本编程与系统管理
    python3-cookbook笔记:第十二章 并发编程
    python3-cookbook笔记:第十章 模块与包
    python3-cookbook笔记:第九章 元编程
    python3-cookbook笔记:第八章 类与对象
    python3-cookbook笔记:第七章 函数
    python3-cookbook笔记:第六章 数据编码和处理
    python3-cookbook笔记:第五章 文件与IO
    python中的列表推导式
    python的类属性、实例属性、类方法、静态方法
  • 原文地址:https://www.cnblogs.com/wangyisen/p/10673061.html
Copyright © 2020-2023  润新知