Что такое стандартная библиотека Python и как она устроена

«Что такое стандартная библиотека Python и как она устроена» — вопрос из категории Библиотеки и модули, который задают на 10% собеседований Python Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Стандартная библиотека Python — это набор модулей, который поставляется вместе с интерпретатором и доступен «из коробки» без дополнительной установки.

Она состоит из двух типов модулей:

  1. Написанные на Python (.py файлы): Модули, такие как os, json или collections, хранятся в папке Lib в директории установки Python.
  2. Реализованные на C (скомпилированные .pyd или .so файлы): Модули, критичные к производительности, например math или itertools, написаны на C для максимальной скорости выполнения. Они встроены непосредственно в интерпретатор.

Почему такое разделение? Модули на C используются для задач, требующих высокой производительности (математические вычисления, работа с бинарными данными), в то время как модули на Python обеспечивают гибкость и простоту поддержки.

Пример исследования:

import sys
import os
import math

# Показывает имена модулей, скомпилированных в интерпретатор
print(sys.builtin_module_names)
# >>> ('_abc', '_ast', '_codecs', ..., 'sys', 'time', 'math')

# Путь к файлу модуля, написанного на Python
print(os.__file__)
# >>> '.../lib/python3.9/os.py'

# Встроенные модули не имеют файла .py
try:
    print(math.__file__)
except AttributeError as e:
    print(e)
# >>> 'module 'math' has no attribute '__file__'