什么是模块(Module)?
比如:
# 文件 my_module.py
def hello():
print("Hello from module!")
模块可分为三类
类型 | 描述 | 示例 |
---|---|---|
内置模块 | Python 自带,不用安装 | math , os , sys , random |
第三方模块 | 需通过 pip 安装 | requests , numpy , flask |
自定义模块 | 自己写的 .py 文件 |
my_module.py |
基础导入:
import math
print(math.sqrt(16))
部分导入:
from math import sqrt
print(sqrt(25))
导入并重命名:
import numpy as np
导入所有(不推荐):
from math import *
基础导入和导入所有有什么区别呢?
基础导入的特点:
使用模块名作为前缀调用(如:math.sqrt
)
命名空间清晰、不会冲突
代码更易读、可维护性强
导入所有:
直接引入模块中的所有函数、变量到当前命名空间
不需要前缀,可直接使用 sqrt()
、pi
等
由此可见,假如你也写了一个sqrt()
,但你同时通过导入所有的方式导入了math模块,从而会时函数被覆盖或混淆,同时会让代码的可读性变差,会让人不知道该函数从何而来。
各种导入方式总结对比:
方式 | 可读性 | 命名冲突风险 | 推荐程度 |
---|---|---|---|
import math |
高 | 低 | ⭐⭐⭐⭐⭐ |
from math import sqrt |
中 | 低 | ⭐⭐⭐⭐ |
from math import * |
低 | 高 | ⭐ |
什么是包?
包(Package)是一个包含多个模块的文件夹,它必须包含一个 __init__.py
文件(Python 3.3+ 可选,但仍推荐保留)。
包用于组织模块,构建层级结构,实现模块的逻辑分类和代码复用。
包的目录结构:
my_project/
├── main.py
└── my_package/
├── __init__.py
├── module1.py
└── module2.py
__init__.py
:表示这是一个包,可为空,也可用于初始化代码。
module1.py
和 module2.py
:包中的模块文件。
由此可见:包其实就是模块+模块…
__init__.py
文件:
__init__.py
是一个特殊的 Python 文件,放在包的文件夹下,用来:
它可以是空文件,也可以写代码。
作用:
1.包的初始化逻辑(加载时执行):
# my_package/__init__.py
print("my_package 被导入了!")
当你第一次 import my_package
时会打印出这句。
2.定义包的默认导入接口:
# my_package/__init__.py
from .module1 import func1
from .module2 import func2
导入时可以:
from my_package import func1, func2
3.控制 from my_package import *
的行为:
# __init__.py
__all__ = ['module1', 'module2']
导入时:
from my_package import *
只会导入 module1
和 module2
。
总结:__init__.py
是 包的入口文件,你可以在里面写初始化逻辑、整理接口、控制暴露内容。它就像包的“大门”或“欢迎界面”。
导入整个包的模块:
import my_package.module1
my_package.module1.function1()
从包中导入模块或函数:
from my_package import module1
module1.function1()
from my_package.module1 import function1
function1()
在理解完这些知识点后,我们也要把它们运用到实际当中,那么在这之前最重要的就是如何将这些第三方库安装到自己的环境中了!其实非常简单。
(使用终端或Anaconda)在当前环境中,输入:
pip install 包名
即可安装,但pip默认使用国外源,下载可能很慢。也可使用国内镜像源:
# 临时使用国内源
pip install 包名 -i 镜像源地址
常用源一览:
名称 | 地址 |
---|---|
清华 | https://pypi.tuna.tsinghua.edu.cn/simple |
阿里云 | https://mirrors.aliyun.com/pypi/simple/ |
豆瓣 | https://pypi.douban.com/simple/ |
中国科技大学 | https://pypi.mirrors.ustc.edu.cn/simple/ |
下面是一些常用的pip
操作总结,希望能够让你对使用第三方库有帮助:
操作 | 命令 |
---|---|
安装包 | pip install 包名 |
指定版本 | pip install 包名==1.2.3 |
升级包 | pip install -U 包名 |
卸载包 | pip uninstall 包名 |
导出依赖 | pip freeze > requirements.txt |
批量安装依赖 | pip install -r requirements.txt |
使用国内源 | -i https://pypi.tuna.tsinghua.edu.cn/simple |
创建虚拟环境 | python -m venv venv |
启动虚拟环境 | source venv/bin/activate or venv\Scripts\activate |
环境的配置经常遗忘,在使用或安装/卸载第三方库时遇到问题也可使用AI工具(科技智慧 bush))进行询问。
以上就是博主在学习python模块和包中的总结,此文章为个人学习中所作笔记,如有任何错误请及时指正博主,感谢浏览~ovo