Python-学习之路-09|Python-学习之路-09 包和模块的基础用法
模块
- 一个模块就是一个包含python代码的文件,后缀名是.py就可以.模块就是个python文件
- 【Python-学习之路-09|Python-学习之路-09 包和模块的基础用法】为什么使用模块?
- 方便维护
- 方便复用
- 避免命名冲突
- 模块的定义
- 模块就是一个普通的python文件
- 模块定义的规范
- 函数(单一的功能)
- 类(相似的功能\业务模块)
- 测试代码
- 模块的使用
- 直接导入
- 语法
- 调用 import modult_name
- 使用 modult_name.function_name 或 modult_name.class_name 等
- 别名
- import modult_name as 别名
- 语法
- 使用importlib来的导入以数字开头的模块
- 语法
- 调用 import importlib
- variable_name = importlib.import_module("modult_name")
- 语法
- 导入模块中指定的class 或function
- 语法
- from module_name import class_name,func_name
- 使用的时候就不需要添加前缀,直接只用class或func就行了
- from module_name import *
- 导入模块中所有的类\函数\或其他
- from module_name import class_name,func_name
- 语法
- 直接导入
#__main__表示py文件的主入口,及要运行此py文件 一定是从__mian__方法开始,如果是通过import调用,则不是
#通过下面的代码可以有效避免模块代码被导入时被动执行的问题
#建议所有程序入口都以此代码为入口
if __name__ = "__main__"
模块的搜索路径和存储
- 什么是模块的搜索路径?
- 系统在加载模块时,会从哪些地方寻找模块?
- 系统默认的搜索路径
import sys sys.path #该属性可以获取路径列表#sys.path的类型为list#添加搜索路径 sys.path.append(dir)
- 模块的加载顺序
- 1.搜索内存中已经加载好的模块
- 2.搜索python的内置模块
- 3.搜索sys.path中的路径
- 包是一种组织管理代码的方式,包里面存放的是模块
- 用于将模块包含在一起的文件夹就是包
- 自定义包的结构
|--- 包
|---|--- __init__.py包的标志性文件
|---|--- 模块1
|---|--- 模块2
|---|--- 子包
|---|---|--- __init__.py包的标志性文件
|---|---|--- 子模块1
|---|---|--- 子模块2
包的导入操作
- import package_name
- 直接导入一个包,可以直接使用init.py中的内容
- 使用方式
- package_name.func_name
- package_name.class_name.func_name
- 直接导入一个包,可以直接使用init.py中的内容
- 同样,在导入包的时候可以使用as 创建一个别名
- 注意:此种方式是默认对包中init.py文件中的内容的导入
- import package_name.module_name
- 使用方法
- package_name.module_name.func_name
- package_name.module_name.class_name.func()
- 同样,在导入包的时候可以使用as 创建一个别名
- import package_name.module_name as pm
- 使用方法
- pm.func_name
- pm.class_name.func()
- from....import 导入
- from pacjage import module1,module2,.......
- 此种方法不执行init.py中的内容
- 使用方法
from package_name import module1 module1.func()
- from pacjage import module1,module2,.......
- from package import *
- 导入当前包init.py文件中的所有函数和类,直接使用即可
- 使用方法
func_name() class_name.func()
-
__all__
的使用
-
__init__.py
中如果文件内容为空,且没有__all__
属性时,那么将加载空的内容 - 如果
__init__.py
中设置的__all__
的值,那么则按照__all__
中指定的子包或模块进行加载,但是这样就不会加载__init__.py
中的内容 -
__all__
=['module1','module2','package1']
-
- 导入当前包init.py文件中的所有函数和类,直接使用即可
- from package.module import *
- 导入包中指定模块的内容
- 导入之后可以直接使用导入模块的函数和类
推荐阅读
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习
- 【韩语学习】(韩语随堂笔记整理)
- 焦点学习田源分享第267天《来访》