栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python学习记录(十二):模块、包

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python学习记录(十二):模块、包

文章目录
  • 1. 模块的导入
    • 1.1 import 语句导入
    • 1.2 from…import 导入
    • 1.3 import()动态导入
    • 1.4 模块的加载问题
  • 2. 包 package 的使用
    • 2.1 包(package)的概念和结构
    • 2.2 导入包操作和本质
    • 2.3 包内引用
    • 2.4 sys.path 和模块搜索路径

1. 模块的导入 1.1 import 语句导入
import 语句的基本语法格式如下:
	import 模块名                       #导入一个模块
	import 模块1, 模块2...              #导入多个模块
	import 模块名 as 模块别名            #导入模块并使用新名字
  • import 加载的模块分为四个通用类别
    • 使用 python 编写的代码(.py 文件);
    • 已被编译为共享库或 DLL 的 C 或 C++扩展;
    • 包好一组模块的包;
    • 使用 C 编写并链接到 python 解释器的内置模块;
1.2 from…import 导入
from 模块名 import 成员1,成员2,...
from 模块名 import *               # 导入一个模块中的所有成员
  • 尽量避免使用“from 模块名 import * ”,它会将模块中所有不是以下划线( _ )开头的名字都导入到当前位置;
  • import 导入的是模块;
  • from…import 导入的是模块中的一个函数/一个类;
1.3 import()动态导入
  • import 语句本质上就是调用内置函数__import__();
  • 给__import__()动态传递不同的的参数值,就能导入不同的模块;
s = "math"
m = __import__(s)
print(m.pi)
  • 不建议自行使用__import__()导入,其行为在 python2 和 python3 中有差异,会导致意外错误;
  • 如果需要动态导入可以使用 importlib 模块;
import importlib
a = importlib.import_module("math")
print(a.pi)
1.4 模块的加载问题
  • 一个模块无论导入多少次,这个模块在整个解释器进程内有且仅有一个实例对象;
  • 确实需要重新加载一个模块时,可以使用importlib.reload()方法;
import test
import importlib
importlib.reload(test)

2. 包 package 的使用 2.1 包(package)的概念和结构
  • 将功能类似的模块放到一起,形成了“包”,本质上,“包”就是一个有__init__.py 的文件夹;
  • 包下面可以包含模块(module),也可以再包含子包(subpackage);
2.2 导入包操作和本质

若需要导入包内的module_AA.py,则:

import a.aa.module_AA                #使用时,必须使用完整名称来;eg:a.aa.module_AA.fun_AA()
from a.aa import module_AA           #使用时,能够直接使用模块名;eg:module_AA.fun_AA()
from a.aa.module_AA import fun_AA    #使用时,能够直接使用函数名;eg:fun_AA()
  • 导入包的本质其实是“导入了包的__init__.py”文件;
  • 可以在__init__.py 中批量导入需要的模块;
  • init.py 的三个核心作用:
    1. 作为包的标识,不能删除;
    2. 用来实现模糊导入;
    3. 导入包实质是执行__init__.py 文件,可以在__init__.py 文件中做这个包的初始化、以及需要统一执行代码、批量导入;
2.3 包内引用
  • 如果是子包内的引用,可以按相对位置引入子模块;
from .. import module_A    #..表示上级目录
from . import module_A2    #.表示同级目录
2.4 sys.path 和模块搜索路径
  • 寻找模块文件的顺序
    1. 内置模块
    2. 当前目录
    3. 程序的主目录
    4. pythonpath 目录(如果已经设置了 pythonpath 环境变量)
    5. 标准链接库目录
    6. 第三方库目录(site-packages 目录)
    7. .pth 文件的内容(如果存在的话)
    8. sys.path.append()临时添加的目录
  • 使用 sys.path 查看和临时修改搜索路径
# 在项目的 b 目录下建立测试模块
import sys
sys.path.append( "d:/")
print(sys.path)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1002205.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号