560 words
1 minute
模块与模块化编程
1. Module 模块
1.1 概念
- 大型 Python 程序以模块和包的形式组织,解决随着代码规模变大而带来的组织、复用和命名冲突问题。
- 任何 Python 源文件都能以模块的形式使用。模块是包含 Python 定义和语句的文件,以
.py为后缀的文件名就是模块名称。
1.2 import 语句
- 使用
import语句加载模块。 - 当导入模块时,将执行:
- 创建新的命名空间。
- 在新创建的命名空间执行模块中的代码。
- 在调用函数中创建名称来引用模块的命名空间。
1. 导入模块
- 如果要在其他程序中使用模块,有以下三种导入方式:
- 导入整个模块
- 导入模块中的特定函数
- 导入模块中的所有函数
import torchfrom torch import nnfrom torch import *2. 模块别名
- 利用
as给导入模块一个别名,简化代码中的调用写法。
import numpy as np3. 单独运行模块
- 如果要单独测试模块,可以在模块中添加以下代码,就可以既用作脚本,也可用作可导入模块:
# 检查模块是否以程序形式运行if __name__ == "__main__": # 是 statementselse: # 否,以模块形式导入 statements2. Packages 包
- 可以理解为一组模块的容器,并用
Package.Module的方式构建命名空间。 - 包目录下必须有
__init__.py文件,Python 才会将包含该文件的目录视为包(Package)。__init__.py可以是一个空文件,也可以执行包的初始化代码或设置__all__变量。
- 包中也可以有子包,每个子包中同样有
__init__.py文件。
2.1 定义包
- 在包目录下创建
__init__.py文件,定义一个包。 - 第一次导入包的任意部分,都会执行
__init__.py中的代码。 __init__.py文件可以为空,也可以包含初始化代码。
2.2 包索引
- 直接采用
from 包 import *时,可能会引用一些不需要的内容,或者导致加载速度过慢。 - 可以通过在
__init__.py中定义一个__all__列表,来指定用*时应导入的模块名称列表。
__all__ = ["first", "second", "third"]2.3 包中导入
- 当子模块想要导入同一个包的其他子模块时,使用相对导入。
from . import firstfrom ..number import one Share
If this article helped you, please share it with others!
Some information may be outdated
Related Posts Smart
1
函数与函数式编程
Python Python 函数的定义与调用、形参与实参、作用域,以及 lambda 匿名函数的整理笔记。
2
Linux环境变量
Linux Linux 环境变量的概念、全局与局部变量、用户自定义变量、PATH 设置,以及登录、交互式和非交互式 shell 启动文件的整理笔记。
3
Linux文件权限
Linux Linux 用户与用户组、账户文件、文件权限,以及 useradd、usermod、groupadd、chmod、chown 等常用操作命令的整理笔记。
4
shell程序
Linux shell 程序概念、父子 shell、进程列表、内建命令与外部命令的整理笔记。
5
L1.HTML语法
Web 用于测试。