1. 内置模块(Built-in Module)
定义:用 C 语言编写,编译进 Python 解释器本身的模块。
特点:
不需要导入就能用?❌ 错误! 内置模块也需要 import
用 C 编写,性能高
随 Python 解释器一起启动,无需额外加载
是标准库的一部分
import sys
# 查看所有内置模块
print(sys.builtin_module_names)
# 输出:('_abc', '_ast', '_codecs', '_collections', '_functools',
# '_imp', '_io', '_locale', '_operator', '_signal', '_sre',
# '_stat', '_string', '_symtable', '_thread', '_tracemalloc',
# '_warnings', '_weakref', 'atexit', 'builtins', 'errno',
# 'faulthandler', 'gc', 'itertools', 'marshal', 'posix',
# 'pwd', 'sys', 'time', 'xxsubtype', 'zipimport')
import sys # sys 是内置模块(C 编写) import time # time 是内置模块(C 编写) import os # os 不是内置模块(Python 编写)❌
标准模块(Standard Module)
定义:Python 官方发布的、随 Python 一起安装的模块,但不一定是内置的。
特点:
用 Python 或 C 编写
随 Python 一起安装,但不一定编译进解释器
需要时从文件系统加载
位于 /usr/lib/python3.x/ 目录下
import os # 标准模块(Python 编写,不是内置) import json # 标准模块(Python 编写) import re # 标准模块(Python 编写,但部分用 C) import sys # 内置模块(C 编写,也是标准模块的一部分)
Python 标准库(Standard Library) ├── 内置模块(Built-in Modules) ← C 编写,编译进解释器 │ ├── sys │ ├── time │ ├── builtins │ └── ... │ └── 非内置标准模块(Non-built-in Standard Modules) ← Python/C 编写,从文件加载 ├── os ├── json ├── re ├── collections └── ...
关键关系:
内置模块 ⊂ 标准库(所有内置模块都是标准库的一部分)
标准模块 ≠ 内置模块(标准模块包括内置和非内置
import sys import os # 方法1:查看是否是内置模块 print(sys.builtin_module_names) # 'sys' 在里面 → 内置模块 # 'os' 不在里面 → 非内置模块 # 方法2:查看模块文件位置 print(sys.__file__) # 没有 __file__ 属性 → 内置模块(无源文件) print(os.__file__) # /usr/lib/python3.8/os.py → 有源文件,标准模块 # 方法3:检查模块类型 print(type(sys)) # <class 'module'> (内置) print(type(os)) # <class 'module'> (普通)