简谈模块和包

模块和包的定义及区别

模块

模块:python中每个python文件都是一个独立的模块
较少的、独立的、功能近似的 多个变量、函数、类型的集合!

包:包含多个python模块的文件夹,包含一个特殊的init.py声明文件
包含多个模块,具备强大功能的程序!

包 & 文件夹 区别

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

区别1:包可以更加有效的管理python模块,文件夹只能作为默认包进行基本管理[包含文件]!
区别2:包和文件夹中引入对应的模块代码的操作方式有区别!



import & from import

import语法

            import

引入一个模块

import 模块名称
#使用模块中的数据
模块名称.变量名称
模块名称.函数名称
模块名称.类型名称

引入一个包

import 包名称
# 使用包中的数据
包名称.模块名称.变量名称/函数名称/类型名称

引入包中的某个模块

import 包名称.模块名称
# 使用包中的数据
包名称.模块名称.变量名称/函数名称/类型名称

ERROR:引入包中的某个变量
import 包名称.模块名称.变量名称

from import语法

       from import

(相对)引入包

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

(相对)引入包中的模块

from .包名称 import 模块名称
# 使用数据
模块名称.变量名称/函数名称/类型名称

(相对) 引入包中的模块中的数据

from .包名称.模块名称 import 变量/函数/类型
# 使用数据:当成当前文件中的数据进行数据
变量名称/函数名称/类型名称



相对引入 & 绝对引入

相对引入

相对引入:相对当前文件路径,参照父级文件路径
|-- 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]

你可能感兴趣的:(简谈模块和包)