包的引入

  1. 模块和包
    模块:python中每个python文件都是一个独立的模块
    较少的、独立的、功能近似的 多个变量、函数、类型的集合!
    包:包含多个python模块的文件夹,包含一个特殊的init.py声明文件
    包含多个模块,具备强大功能的程序!

    包 & 文件夹 区别
    包:包含了一个init.py声明文件[空文件、编写代码]
    文件夹:普通文件夹

     区别1:包可以更加有效的管理python模块,文件夹只能作为默认包进行基本管理[包含文件]!
     区别2:包和文件夹中引入对应的模块代码的操作方式区别!
    
  2. import & from import
    包和模块的引入
    (1) import
    #引入一个模块
    import 模块名称
    #使用模块中的数据
    模块名称.变量名称
    模块名称.函数名称
    模块名称.类型名称

     # 引入一个包
     import 包名称
     # 使用包中的数据
     包名称.模块名称.变量名称/函数名称/类型名称
    
     # 引入包中的某个模块
     import 包名称.模块名称
     # 使用包中的数据
     包名称.模块名称.变量名称/函数名称/类型名称
    
     # ERROR:引入包中的某个变量
     import 包名称.模块名称.变量名称
    

    (2) from import语法
    # (相对)引入包
    from . import 包名称 [必须在init.py中,主动通过from . import引入需要的模块]
    # 使用数据
    包名称.模块名称.变量名称/函数名称/类型名称

    # (相对)引入包中的模块
    from .包名称 import 模块名称
    # 使用数据
    模块名称.变量名称/函数名称/类型名称
    
    # (相对) 引入包中的模块中的数据
    from .包名称.模块名称 import  变量/函数/类型
    # 使用数据:当成当前文件中的数据进行数据
    变量名称/函数名称/类型名称
    
  3. 相对引入 & 绝对引入

    相对引入:相对当前文件路径,参照父级文件路径
    |-- demo/
    |-- utils.py
    |-- main.py [from . import utils]

    运行:添加参照路径:python -m demo.main
    运行过程中,在main.py中找到相对路径的utils.py

    绝对引入:针对包/项目/模块,直接引入的方式
    |-- demo/
    |-- users/
    |-- init.py
    |-- tools.py
    |-- utils.py
    |- main.py
    [import utils]
    [from users import tools]
    [绝对引入:查询路径]
    [当前文件夹|PYTHONPATH|sys.path]

你可能感兴趣的:(包的引入)