Документация Python неофициальный перевод
Содержание страницы

ВведениеIntroduction

«Библиотека Python» содержит несколько различных видов компонентов.

В неё входят типы данных, которые обычно считаются частью «ядра» языка, например числа и списки. Для этих типов ядро языка определяет форму литералов и накладывает некоторые ограничения на их семантику, но не определяет семантику полностью. (С другой стороны, ядро языка определяет синтаксические свойства, такие как написание и приоритет операторов.)

Библиотека также содержит встроенные функции и исключения – объекты, которые могут использоваться любым кодом Python без необходимости в инструкции import. Некоторые из них определены ядром языка, но многие не являются обязательными для базовой семантики и описаны только здесь.

Однако основную часть библиотеки составляет набор модулей. Этот набор можно классифицировать по-разному. Некоторые модули написаны на C и встроены в интерпретатор Python; другие написаны на Python и импортируются в виде исходного кода. Одни модули предоставляют интерфейсы, специфичные для Python, например вывод трассировки стека; другие – интерфейсы, специфичные для конкретных операционных систем, такие как доступ к определённому оборудованию; третьи – интерфейсы для конкретных прикладных областей, например Всемирной паутины. Некоторые модули доступны во всех версиях и портах Python; другие доступны только при поддержке или требовании со стороны базовой системы; третьи – только если при компиляции и установке Python была выбрана соответствующая опция конфигурации.

Данное руководство организовано «изнутри наружу»: сначала описываются встроенные функции, типы данных и исключения, а затем модули, сгруппированные по главам родственных модулей.

This means that if you start reading this manual from the start, and skip to the next chapter when you get bored, you will get a reasonable overview of the available modules and application areas that are supported by the Python library. Of course, you don’t have to read it like a novel – you can also browse the table of contents (in front of the manual), or look for a specific function, module or term in the index (in the back). And finally, if you enjoy learning about random subjects, you choose a random page number (see module random) and read a section or two. Regardless of the order in which you read the sections of this manual, it helps to start with chapter Built-in Functions, as the remainder of the manual assumes familiarity with this material.

Итак, представление начинается!

Примечания о доступностиNotes on availability

  • Примечание «Доступность: Unix» означает, что эта функция обычно встречается в системах Unix. Оно не утверждает о её существовании в конкретной операционной системе.

  • Если не указано иное, все функции, для которых заявлена «Доступность: Unix», поддерживаются в macOS, которая основана на ядре Unix.

  • If an availability note contains both a minimum Kernel version and a minimum libc version, then both conditions must hold. For example a feature with note Availability: Linux >= 3.17 with glibc >= 2.27 requires both Linux 3.17 or newer and glibc 2.27 or newer.

Платформы WebAssemblyWebAssembly platforms

The WebAssembly platforms wasm32-emscripten (Emscripten) and wasm32-wasi (WASI) provide a subset of POSIX APIs. WebAssembly runtimes and browsers are sandboxed and have limited access to the host and external resources. Any Python standard library module that uses processes, threading, networking, signals, or other forms of inter-process communication (IPC), is either not available or may not work as on other Unix-like systems. File I/O, file system, and Unix permission-related functions are restricted, too. Emscripten does not permit blocking I/O. Other blocking operations like sleep() block the browser event loop.

The properties and behavior of Python on WebAssembly platforms depend on the Emscripten-SDK or WASI-SDK version, WASM runtimes (browser, NodeJS, wasmtime), and Python build time flags. WebAssembly, Emscripten, and WASI are evolving standards; some features like networking may be supported in the future.

For Python in the browser, users should consider Pyodide or PyScript. PyScript is built on top of Pyodide, which itself is built on top of CPython and Emscripten. Pyodide provides access to browsers’ JavaScript and DOM APIs as well as limited networking capabilities with JavaScript’s XMLHttpRequest and Fetch APIs.

  • API, связанные с процессами, недоступны или всегда завершаются ошибкой. Сюда входят API для порождения новых процессов (fork(), execve()), ожидания процессов (waitpid()), отправки сигналов (kill()) или иного взаимодействия с процессами. Модуль subprocess импортируется, но не работает.

  • The socket module is available, but is limited and behaves differently from other platforms. On Emscripten, sockets are always non-blocking and require additional JavaScript code and helpers on the server to proxy TCP through WebSockets; see Emscripten Networking for more information. WASI snapshot preview 1 only permits sockets from an existing file descriptor.

  • Некоторые функции являются заглушками, которые либо ничего не делают и всегда возвращают жёстко заданные значения.

  • Функции, связанные с файловыми дескрипторами, правами доступа к файлам, владельцами файлов и ссылками, ограничены и не поддерживают некоторые операции. Например, WASI не разрешает символические ссылки с абсолютными именами файлов.