Notebook и kernel
Что на самом деле происходит, когда вы запускаете ячейку — в блокноте и в браузерной практике этого курса.
Мы уже проходили практику этого курса в браузере — самое время объяснить, что там на самом деле происходит, с точки зрения выполнения кода.
Notebook — это не то же самое, что kernel
- notebook (
.ipynb) — сам файл: набор ячеек с кодом, текстом и уже сохранёнными результатами прошлого запуска; - kernel (ядро) — отдельный работающий процесс Python, который реально выполняет код из ячеек, когда вы их запускаете.
Один и тот же файл блокнота можно открыть и подключить к разным ядрам — например, к ядру с одним набором установленных пакетов или с другим (мы говорили об этом в главе 2, раздел 2.15, применительно к VS Code).
Важная особенность: состояние сохраняется между ячейками
В отличие от обычного скрипта, который каждый раз выполняется с самого начала, в блокноте переменные, созданные в одной ячейке, остаются доступны в следующих — пока работает то же самое ядро.
x = 10
print(x) # 10 — x всё ещё существует
Как устроена браузерная практика этого курса
Все интерактивные упражнения курса — настоящий Python, а не имитация. Устроено это так:
Pyodide — это реальный интерпретатор Python, скомпилированный в
WebAssembly и запускающийся прямо в вашем браузере, без установки на компьютер. Это ещё одна
среда выполнения — со своими ограничениями: например, у неё нет доступа к нативным
графическим окнам операционной системы, поэтому пакеты вроде tkinter
в чистом виде там не работают (в курсе такие упражнения честно помечены как «локальные» — вы
уже видели это в главе 2).