Глоссарий
-
>>> -
Приглашение Python по умолчанию для интерактивной оболочки. Часто встречается в примерах кода, которые можно выполнять интерактивно в интерпретаторе.
-
... -
Может означать:
- Приглашение Python по умолчанию для интерактивной оболочки при вводе кода с отступом, внутри пары соответствующих левых и правых разделителей (скобок, квадратных скобок, фигурных скобок или тройных кавычек) либо после указания декоратора.
- Форма из трёх точек для объекта Ellipsis.
-
abstract base class -
Абстрактные базовые классы дополняют утиную типизацию, предоставляя способ определения интерфейсов в случаях, когда другие методы, такие как
hasattr(), были бы неудобны или приводили бы к неочевидным ошибкам (например, при работе с магическими методами). ABC вводят виртуальные подклассы — классы, которые не наследуются от класса, но всё равно распознаются функциямиisinstance()иissubclass(); см. документацию модуляabc. Python включает множество встроенных ABC для структур данных (в модулеcollections.abc), чисел (в модулеnumbers), потоков (в модулеio), средств поиска и загрузки модулей (в модулеimportlib.abc). Вы можете создавать собственные ABC с помощью модуляabc. -
annotation -
Метка, связанная с переменной, атрибутом класса, параметром функции или возвращаемым значением, которая по соглашению используется как подсказка типа.
Аннотации локальных переменных недоступны во время выполнения, но аннотации глобальных переменных, атрибутов классов и функций сохраняются соответственно в специальном атрибуте
__annotations__модулей, классов и функций.См. также аннотацию переменной, аннотацию функции, PEP 484 и PEP 526, в которых описаны эти возможности. Рекомендации по работе с аннотациями см. в разделе Рекомендации по использованию аннотаций.
-
argument -
Значение, передаваемое функции (или методу) при её вызове. Существует два вида аргументов:
-
именованный аргумент: аргумент, перед которым в вызове функции указан идентификатор (например,
name=), либо значение, переданное в словаре с предшествующим ему**. Например,3и5являются именованными аргументами в следующих вызовахcomplex():complex(real=3, imag=5) complex(**{'real': 3, 'imag': 5}) -
позиционный аргумент: аргумент, который не является именованным. Позиционные аргументы могут располагаться в начале списка аргументов и/или передаваться как элементы итерируемого объекта, перед которым указано
*. Например,3и5являются позиционными аргументами в следующих вызовах:complex(3, 5) complex(*(3, 5))
Аргументы присваиваются именованным локальным переменным в теле функции. Правила такого присваивания описаны в разделе Вызовы. Синтаксически аргументом может быть любое выражение; его вычисленное значение присваивается локальной переменной.
См. также статью глоссария параметр, ответ на часто задаваемый вопрос о разнице между аргументами и параметрами и PEP 362.
-
-
asynchronous context manager -
Объект, который управляет средой, видимой в инструкции
async with, определяя методы__aenter__()и__aexit__(). Введён в PEP 492. -
asynchronous generator -
Функция, возвращающая асинхронный итератор-генератор. Она похожа на функцию-корутину, определённую с помощью
async def, за исключением того, что содержит выраженияyieldдля создания последовательности значений, пригодной для использования в циклеasync for.Обычно этот термин обозначает функцию асинхронного генератора, но в некоторых контекстах может обозначать асинхронный итератор-генератор. Если предполагаемый смысл неясен, использование полных терминов позволяет избежать неоднозначности.
Функция асинхронного генератора может содержать выражения
await, а также инструкцииasync forиasync with. -
asynchronous generator iterator -
Объект, созданный функцией асинхронного генератора.
Это асинхронный итератор, который при вызове метода
__anext__()возвращает ожидаемый объект, выполняющий тело функции асинхронного генератора до следующего выраженияyield.Каждое выражение
yieldвременно приостанавливает обработку, сохраняя состояние выполнения (включая локальные переменные и ожидающие инструкции try). Когда асинхронный итератор-генератор возобновляет работу с другим ожидаемым объектом, возвращённым методом__anext__(), выполнение продолжается с того места, где оно было приостановлено. См. PEP 492 и PEP 525. -
asynchronous iterable -
Объект, который можно использовать в инструкции
async for. Метод__aiter__()должен возвращать асинхронный итератор. Введён в PEP 492. -
asynchronous iterator -
Объект, реализующий методы
__aiter__()и__anext__(). Метод__anext__()должен возвращать ожидаемый объект. Инструкцияasync forобрабатывает ожидаемые объекты, возвращаемые методом__anext__()асинхронного итератора, пока не будет вызвано исключениеStopAsyncIteration. Введён в PEP 492. -
attribute -
Значение, связанное с объектом и обычно доступное по имени с помощью выражений с точечной нотацией. Например, если у объекта o есть атрибут a, на него ссылаются как на o.a.
Если объект это позволяет, ему можно присвоить атрибут с именем, которое не является идентификатором согласно разделу Идентификаторы и ключевые слова, например с помощью
setattr(). Такой атрибут нельзя будет получить с помощью точечной нотации; вместо этого его потребуется извлечь с помощьюgetattr(). -
awaitable -
Объект, который можно использовать в выражении
await. Это может быть корутина или объект с методом__await__(). См. также PEP 492. -
BDFL -
Доброжелательный диктатор на всю жизнь (Benevolent Dictator For Life), также известный как Гвидо ван Россум, создатель Python.
-
binary file -
Файловый объект, способный читать и записывать объекты, подобные байтам. К двоичным файлам относятся файлы, открытые в двоичном режиме (
'rb','wb'или'rb+'),sys.stdin.buffer,sys.stdout.buffer, а также экземплярыio.BytesIOиgzip.GzipFile.См. также текстовый файл — файловый объект, способный читать и записывать объекты
str. -
borrowed reference -
В C API Python заимствованная ссылка — это ссылка на объект, которым не владеет использующий его код. Если объект уничтожен, такая ссылка становится висячим указателем. Например, сборщик мусора может удалить последнюю сильную ссылку на объект и тем самым уничтожить его.
Рекомендуется вызвать
Py_INCREF()для заимствованной ссылки, чтобы преобразовать её на месте в сильную ссылку, кроме случаев, когда объект не может быть уничтожен до последнего использования заимствованной ссылки. Для создания новой сильной ссылки можно использовать функциюPy_NewRef(). -
bytes-like object -
Объект, поддерживающий протокол буфера и способный экспортировать непрерывный буфер C. К таким объектам относятся все объекты
bytes,bytearrayиarray.array, а также многие распространённые объектыmemoryview. Объекты, подобные байтам, можно использовать в различных операциях с двоичными данными, например для сжатия, сохранения в двоичный файл и отправки через сокет.Для некоторых операций двоичные данные должны быть изменяемыми. В документации такие объекты часто называются «изменяемыми объектами, подобными байтам». Примеры изменяемых буферных объектов:
bytearrayиmemoryviewобъектаbytearray. Для других операций двоичные данные должны храниться в неизменяемых объектах («неизменяемых объектах, подобных байтам»); к ним относятсяbytesиmemoryviewобъектаbytes. -
bytecode -
Исходный код Python компилируется в байт-код — внутреннее представление программы Python в интерпретаторе CPython. Байт-код также кэшируется в файлах
.pyc, благодаря чему повторный запуск того же файла выполняется быстрее (можно избежать повторной компиляции исходного кода в байт-код). Считается, что этот «промежуточный язык» выполняется на виртуальной машине, которая исполняет машинный код, соответствующий каждой инструкции байт-кода. Обратите внимание, что байт-коды не рассчитаны на работу в разных виртуальных машинах Python и не гарантируют стабильность между выпусками Python.Список инструкций байт-кода приведён в документации модуля dis.
-
callable -
Вызываемый объект — это объект, который можно вызвать, возможно передав ему набор аргументов (см. аргумент), используя следующий синтаксис:
callable(argument1, argument2, argumentN)
Функция и, как следствие, метод являются вызываемыми объектами. Вызываемым объектом также является экземпляр класса, реализующего метод
__call__(). -
callback -
Подпрограмма-функция, передаваемая в качестве аргумента для выполнения в некоторый момент в будущем.
-
class -
Шаблон для создания объектов, определяемых пользователем. Определения классов обычно содержат определения методов, которые работают с экземплярами этого класса.
-
class variable -
Переменная, определённая в классе и предназначенная для изменения только на уровне класса (то есть не в экземпляре класса).
-
closure variable -
Свободная переменная, на которую ссылаются из вложенной области видимости и которая определена во внешней области видимости, а не разрешается во время выполнения из глобального или встроенного пространства имён. Может быть явно объявлена с помощью ключевого слова
nonlocal, чтобы разрешить запись, или определена неявно, если переменная используется только для чтения.Например, в функции
innerиз следующего кода иx, иprintявляются свободными переменными, но толькоxявляется переменной замыкания:def outer(): x = 0 def inner(): nonlocal x x += 1 print(x) return innerИз-за атрибута
codeobject.co_freevars(который, несмотря на своё название, включает только имена переменных замыкания, а не все используемые свободные переменные) более общий термин свободная переменная иногда употребляется и тогда, когда подразумеваются именно переменные замыкания. -
complex number -
Расширение привычной системы вещественных чисел, в котором все числа выражаются как сумма вещественной и мнимой частей. Мнимые числа являются вещественными кратными мнимой единицы (квадратного корня из
-1); в математике её часто обозначаютi, а в инженерных дисциплинах —j. Python поддерживает комплексные числа на встроенном уровне, записывая их в последней нотации; мнимая часть обозначается суффиксомj, например3+1j. Для доступа к комплексным аналогам функций модуляmathиспользуйтеcmath. Работа с комплексными числами — довольно продвинутая математическая возможность. Если вы не знаете, зачем они вам нужны, почти наверняка можете спокойно их игнорировать. -
context -
Значение этого термина зависит от того, где и как он используется. Вот несколько распространённых значений:
- Временное состояние или среда, создаваемые менеджером контекста с помощью инструкции
with. - Набор связей между ключами и значениями, относящийся к определённому объекту
contextvars.Contextи доступный через объектыContextVar. См. также переменная контекста. - Объект
contextvars.Context. См. также текущий контекст.
- Временное состояние или среда, создаваемые менеджером контекста с помощью инструкции
-
context management protocol -
Методы
__enter__()и__exit__(), вызываемые инструкциейwith. См. PEP 343. -
context manager -
Объект, реализующий протокол управления контекстом и управляющий средой, видимой в инструкции
with. См. PEP 343. -
context variable -
Переменная, значение которой зависит от того, какой контекст является текущим контекстом. Доступ к значениям осуществляется через объекты
contextvars.ContextVar. Переменные контекста главным образом используются для изоляции состояния параллельно выполняющихся асинхронных задач. -
contiguous -
Буфер считается непрерывным, если он является непрерывным в порядке C или в порядке Fortran. Буферы нулевой размерности непрерывны и в порядке C, и в порядке Fortran. В одномерных массивах элементы должны располагаться в памяти рядом друг с другом в порядке возрастания индексов, начиная с нуля. В многомерных массивах, непрерывных в порядке C, при обходе элементов в порядке адресов памяти быстрее всего изменяется последний индекс. В массивах, непрерывных в порядке Fortran, быстрее всего изменяется первый индекс.
-
coroutine -
Корутины представляют собой более обобщённую форму подпрограмм. Подпрограммы начинают выполнение в одной точке и завершают его в другой. Выполнение корутин может начинаться, завершаться и возобновляться во множестве различных точек. Их можно реализовать с помощью инструкции
async def. См. также PEP 492. -
coroutine function -
Функция, возвращающая объект корутины. Функцию-корутину можно определить с помощью инструкции
async def; она может содержать ключевые словаawait,async forиasync with. Они были введены в PEP 492. -
CPython -
Каноническая реализация языка программирования Python, распространяемая на сайте python.org. Термин «CPython» используется, когда необходимо отличить эту реализацию от других, таких как Jython или IronPython.
-
current context -
Контекст (объект
contextvars.Context), который в данный момент используется объектамиContextVarдля доступа (получения или установки) к значениям переменных контекста. У каждого потока есть свой текущий контекст. Среды выполнения асинхронных задач (см.asyncio) связывают каждую задачу с контекстом, который становится текущим при запуске или возобновлении выполнения задачи. -
decorator -
Функция, возвращающая другую функцию; обычно она применяется для преобразования функции с помощью синтаксиса
@wrapper. Распространённые примеры декораторов —classmethod()иstaticmethod().Синтаксис декораторов — всего лишь синтаксический сахар; следующие два определения функций семантически эквивалентны:
def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...Та же концепция существует и для классов, но там используется реже. Подробнее о декораторах см. документацию по определениям функций и определениям классов.
-
descriptor
-
Любой объект, который определяет методы
__get__(),__set__()или__delete__(). Если атрибут класса является дескриптором, при поиске атрибута срабатывает его особое поведение связывания. Обычно при использовании a.b для получения, установки или удаления атрибута в словаре класса a ищется объект с именем b, но если b — дескриптор, вызывается соответствующий метод дескриптора. Понимание дескрипторов — ключ к глубокому пониманию Python, поскольку они лежат в основе многих возможностей, включая функции, методы, свойства, методы классов, статические методы и ссылки на суперклассы.Дополнительную информацию о методах дескрипторов см. в разделе Реализация дескрипторов или в руководстве по дескрипторам.
-
dictionary -
Ассоциативный массив, в котором произвольные ключи сопоставляются со значениями. Ключами могут быть любые объекты с методами
__hash__()и__eq__(). В Perl называется хешем. -
dictionary comprehension -
Компактный способ обработать все или часть элементов итерируемого объекта и вернуть словарь с результатами.
results = {n: n ** 2 for n in range(10)}создаёт словарь, в котором ключnсопоставлен со значениемn ** 2. См. раздел Отображения для списков, множеств и словарей. -
dictionary view -
Объекты, возвращаемые функциями
dict.keys(),dict.values()иdict.items(), называются представлениями словаря. Они предоставляют динамическое представление элементов словаря, то есть при изменении словаря представление также отражает эти изменения. Чтобы преобразовать представление словаря в полноценный список, используйтеlist(dictview). См. раздел Объекты-представления словаря. -
docstring -
Строковый литерал, который является первым выражением в классе, функции или модуле. При выполнении блока он игнорируется, однако компилятор распознаёт его и помещает в атрибут
__doc__содержащего его класса, функции или модуля. Поскольку к нему можно обратиться с помощью интроспекции, он является общепринятым местом для документации объекта. -
duck-typing -
Стиль программирования, при котором тип объекта не проверяется, чтобы определить, имеет ли он нужный интерфейс; вместо этого метод или атрибут просто вызывается или используется («Если оно выглядит как утка и крякает как утка, значит, это утка»). Акцентируя внимание на интерфейсах, а не на конкретных типах, хорошо спроектированный код становится гибче благодаря возможности полиморфной подстановки. При утично́й типизации избегают проверок с помощью
type()илиisinstance(). (Однако утиную типизацию можно сочетать с абстрактными базовыми классами.) Вместо этого обычно используются проверкиhasattr()или программирование в стиле EAFP. -
dunder -
Неформальное сокращение от «double underscore» («двойное подчёркивание»), используемое при разговоре о специальном методе. Например,
__init__часто произносят как «да́ндер ини́т». -
EAFP -
Проще попросить прощения, чем разрешения. Этот распространённый в Python стиль написания кода предполагает наличие допустимых ключей или атрибутов и перехватывает исключения, если это предположение оказывается неверным. Для этого ясного и быстрого стиля характерно наличие большого количества инструкций
tryиexcept. Этот подход противопоставляется стилю LBYL, распространённому во многих других языках, например C. -
expression -
Фрагмент синтаксиса, который можно вычислить и получить некоторое значение. Иными словами, выражение представляет собой совокупность элементов, таких как литералы, имена, доступ к атрибутам, операторы или вызовы функций, каждый из которых возвращает значение. В отличие от многих других языков, не все языковые конструкции являются выражениями. Существуют также инструкции, которые нельзя использовать как выражения, например
while. Присваивания также являются инструкциями, а не выражениями. -
extension module -
Модуль, написанный на C или C++ и использующий C API Python для взаимодействия с ядром и пользовательским кодом.
-
f-string -
Строковые литералы с префиксом
'f'или'F'обычно называют «f-строками» — сокращением от форматированных строковых литералов. См. также PEP 498. -
file object -
Объект, предоставляющий API для работы с файлами (с такими методами, как
read()илиwrite()) и взаимодействующий с нижележащим ресурсом. В зависимости от способа создания файловый объект может обеспечивать доступ к реальному файлу на диске или к другому типу хранилища либо устройству связи (например, стандартному вводу-выводу, буферам в памяти, сокетам, каналам и т. д.). Файловые объекты также называют файлоподобными объектами или потоками.На самом деле существует три категории файловых объектов: необработанные двоичные файлы, буферизованные двоичные файлы и текстовые файлы. Их интерфейсы определены в модуле
io. Стандартный способ создания файлового объекта — использование функцииopen(). -
file-like object -
Синоним понятия файловый объект.
-
filesystem encoding and error handler -
Кодировка и обработчик ошибок, используемые Python для декодирования байтов, полученных от операционной системы, и кодирования Unicode для операционной системы.
Кодировка файловой системы должна гарантировать успешное декодирование всех байтов со значениями меньше 128. Если кодировка файловой системы не обеспечивает эту гарантию, функции API могут вызывать исключение
UnicodeError.Для получения кодировки файловой системы и обработчика ошибок можно использовать функции
sys.getfilesystemencoding()иsys.getfilesystemencodeerrors().Кодировка файловой системы и обработчик ошибок настраиваются при запуске Python функцией
PyConfig_Read(): см. параметрыfilesystem_encodingиfilesystem_errorsструктурыPyConfig.См. также кодировку локали.
-
finder -
Объект, который пытается найти загрузчик импортируемого модуля.
Существует два типа искателей: искатель метапути, используемый с
sys.meta_path, и искатель элемента пути, используемый сsys.path_hooks.Подробнее см. разделы Искатели и загрузчики и
importlib. -
floor division -
Математическое деление с округлением вниз до ближайшего целого числа. Оператор целочисленного деления —
//. Например, выражение11 // 4вычисляется в2, в отличие от2.75, возвращаемого при обычном делении чисел с плавающей точкой. Обратите внимание, что(-11) // 4равно-3, поскольку это-2.75, округлённое вниз. См. PEP 238. -
free threading -
Модель многопоточности, в которой несколько потоков могут одновременно выполнять байт-код Python в одном интерпретаторе. Она противоположна глобальной блокировке интерпретатора, которая позволяет выполнять байт-код Python только одному потоку за раз. См. PEP 703.
-
free variable -
Формально, согласно определению в модели выполнения языка, свободная переменная — это любая переменная, используемая в пространстве имён, но не являющаяся в нём локальной. Пример см. в разделе переменная замыкания. На практике из-за названия атрибута
codeobject.co_freevarsэтот термин иногда также используется как синоним понятия переменная замыкания. -
function -
Последовательность инструкций, которая возвращает вызывающему объекту некоторое значение. Функции также можно передать ноль или более аргументов, которые могут использоваться при выполнении тела функции. См. также параметр, метод и раздел Определения функций.
-
function annotation -
Аннотация параметра функции или возвращаемого значения.
Аннотации функций обычно используются как подсказки типов: например, ожидается, что эта функция принимает два аргумента типа
intи также возвращает значение типаint:def sum_two_numbers(a: int, b: int) -> int: return a + b
Синтаксис аннотаций функций описан в разделе Определения функций.
См. аннотацию переменной и PEP 484, где описаны эти возможности. Рекомендации по работе с аннотациями см. также в разделе Рекомендации по использованию аннотаций.
-
__future__ -
Инструкция future,
from __future__ import <feature>, указывает компилятору компилировать текущий модуль с использованием синтаксиса или семантики, которые станут стандартными в будущей версии Python. В модуле__future__документированы возможные значения параметра feature. Импортировав этот модуль и изучив его переменные, можно узнать, когда новая возможность впервые появилась в языке и когда она станет (или стала) поведением по умолчанию:>>> import __future__ >>> __future__.division _Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
-
garbage collection -
Процесс освобождения памяти, когда она больше не используется. Python выполняет сборку мусора с помощью подсчёта ссылок и циклического сборщика мусора, который умеет обнаруживать и разрывать циклы ссылок. Управлять сборщиком мусора можно с помощью модуля
gc. -
generator -
Функция, возвращающая итератор-генератор. Она похожа на обычную функцию, но содержит выражения
yield, которые создают последовательность значений, используемых в цикле for или получаемых по одному с помощью функцииnext().Обычно этот термин относится к функции-генератору, но в некоторых контекстах может обозначать итератор-генератор. Если смысл неясен, использование полных терминов позволяет избежать двусмысленности.
-
generator iterator -
Объект, созданный функцией генератором.
Каждая операция
yieldвременно приостанавливает выполнение, сохраняя состояние (включая локальные переменные и ожидающие выполнения инструкции try). Когда итератор-генератор возобновляет работу, он продолжает с того места, на котором остановился (в отличие от функций, которые начинают выполнение заново при каждом вызове). -
generator expression -
Выражение, возвращающее итератор. Оно похоже на обычное выражение, за которым следует конструкция
for, определяющая переменную цикла, диапазон и необязательную конструкциюif. Составное выражение генерирует значения для объемлющей функции:>>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81 285
-
generic function -
Функция, составленная из нескольких функций, реализующих одну и ту же операцию для разных типов. То, какая реализация будет использована при вызове, определяется алгоритмом диспетчеризации.
См. также запись глоссария одиночная диспетчеризация, декоратор
functools.singledispatch()и PEP 443. -
generic type -
Тип, который можно параметризовать; обычно это класс-контейнер, например
listилиdict. Используется для подсказок типов и аннотаций.Подробнее см. обобщённые псевдонимы типов, PEP 483, PEP 484, PEP 585 и модуль
typing. -
GIL -
global interpreter lock -
Механизм, используемый интерпретатором CPython, чтобы гарантировать, что в каждый момент времени только один поток выполняет байт-код Python. Это упрощает реализацию CPython, поскольку модель объектов (включая критически важные встроенные типы, такие как
dict) по умолчанию защищена от одновременного доступа. Блокировка всего интерпретатора упрощает поддержку многопоточности, но снижает уровень параллелизма, который обеспечивают многопроцессорные системы.Однако некоторые модули расширения, как стандартные, так и сторонние, при выполнении ресурсоёмких задач, например сжатия или хеширования, освобождают GIL. Кроме того, GIL всегда освобождается при выполнении операций ввода-вывода.
Начиная с Python 3.13, GIL можно отключить с помощью параметра конфигурации сборки
--disable-gil. После сборки Python с этим параметром код необходимо запускать с-X gil=0или предварительно задать переменную окруженияPYTHON_GIL=0. Эта возможность повышает производительность многопоточных приложений и упрощает эффективное использование многоядерных процессоров. Подробнее см. PEP 703. -
hash-based pyc -
Файл кэша байт-кода, в котором для проверки актуальности используется хеш соответствующего исходного файла, а не время его последнего изменения. См. раздел Инвалидация кэшированного байт-кода.
-
hashable -
Объект является хешируемым, если его хеш-значение не меняется в течение всего срока его существования (для этого необходим метод
__hash__()) и его можно сравнивать с другими объектами (для этого необходим метод__eq__()). Хешируемые объекты, которые равны друг другу при сравнении, должны иметь одинаковые хеш-значения.Хешируемость позволяет использовать объект в качестве ключа словаря и элемента множества, поскольку эти структуры данных используют хеш-значение внутри.
Большинство неизменяемых встроенных объектов Python хешируемы; изменяемые контейнеры (например, списки или словари) — нет; неизменяемые контейнеры (например, кортежи и неизменяемые множества) хешируемы только в том случае, если хешируемы их элементы. По умолчанию объекты, являющиеся экземплярами классов, определённых пользователем, хешируемы. Они не равны друг другу (за исключением сравнения с самими собой), а их хеш-значение вычисляется на основе их
id(). -
IDLE -
Интегрированная среда разработки и обучения для Python. IDLE — редактор и оболочка Python — это простой редактор и интерпретатор, входящий в стандартный дистрибутив Python.
-
immortal -
Бессмертные объекты — деталь реализации CPython, представленная в PEP 683.
У бессмертного объекта его счётчик ссылок никогда не изменяется, поэтому он не освобождается, пока работает интерпретатор. Например, в CPython бессмертны
TrueиNone. -
immutable -
Объект с фиксированным значением. К неизменяемым объектам относятся числа, строки и кортежи. Такой объект нельзя изменить. Если требуется сохранить другое значение, необходимо создать новый объект. Неизменяемые объекты играют важную роль там, где требуется постоянное хеш-значение, например при использовании в качестве ключа словаря.
-
import path -
Список расположений (или элементов пути), в которых искатель на основе пути ищет импортируемые модули. При импорте этот список обычно берётся из
sys.path, однако для подмодулей он также может браться из атрибута__path__родительского пакета. -
importing -
Процесс, в результате которого код Python из одного модуля становится доступен коду Python из другого модуля.
-
importer -
Объект, который и находит, и загружает модуль; одновременно объект искателя и загрузчика.
-
interactive -
В Python есть интерактивный интерпретатор: это значит, что в приглашении интерпретатора можно вводить инструкции и выражения, немедленно выполнять их и видеть результаты. Просто запустите
pythonбез аргументов (например, выбрав его в главном меню компьютера). Это очень удобный способ проверять новые идеи или изучать модули и пакеты (не забудьтеhelp(x)). Подробнее об интерактивном режиме см. раздел Интерактивный режим. -
interpreted -
Python — интерпретируемый язык, в отличие от компилируемого, хотя это различие может быть размытым из-за наличия компилятора байт-кода. Это означает, что исходные файлы можно запускать напрямую, не создавая предварительно исполняемый файл. У интерпретируемых языков обычно короче цикл разработки и отладки, чем у компилируемых, хотя их программы, как правило, выполняются медленнее. См. также интерактивный режим.
-
interpreter shutdown -
При завершении работы интерпретатор Python переходит в специальную фазу, во время которой постепенно освобождаются все выделенные ресурсы, такие как модули и различные важные внутренние структуры. Также несколько раз вызывается сборщик мусора. Это может привести к выполнению кода пользовательских деструкторов или обратных вызовов слабых ссылок. Код, выполняемый на этапе завершения работы, может столкнуться с различными исключениями, поскольку необходимые ему ресурсы могут уже не функционировать (типичные примеры — библиотечные модули или механизм предупреждений).
Основная причина завершения работы интерпретатора — окончание выполнения модуля
__main__или запускаемого скрипта. -
iterable
-
Объект, способный возвращать свои элементы по одному. К итерируемым объектам относятся все типы последовательностей (например,
list,strиtuple), а также некоторые типы, не являющиеся последовательностями, напримерdict, объекты файлов и объекты любых классов, которые вы определили с методом__iter__()или с методом__getitem__(), реализующим семантику последовательности.Итерируемые объекты можно использовать в цикле
forи во многих других местах, где требуется последовательность (zip(),map(), …). Когда итерируемый объект передаётся в качестве аргумента встроенной функцииiter(), она возвращает итератор для этого объекта. Этот итератор подходит для одного прохода по набору значений. При работе с итерируемыми объектами обычно не нужно вызыватьiter()или самостоятельно работать с объектами-итераторами. Инструкцияforвыполняет это автоматически, создавая временную безымянную переменную для хранения итератора на время выполнения цикла. См. также итератор, последовательность и генератор. -
iterator -
Объект, представляющий поток данных. Повторные вызовы метода
__next__()итератора (или передача его встроенной функцииnext()) возвращают следующие элементы потока. Когда данные заканчиваются, вместо этого возникает исключениеStopIteration. На этом этапе объект-итератор исчерпан, и любые дальнейшие вызовы его метода__next__()снова вызываютStopIteration. Итераторы должны иметь метод__iter__(), который возвращает сам объект-итератор, поэтому каждый итератор также является итерируемым объектом и может использоваться в большинстве мест, где допустимы другие итерируемые объекты. Заметное исключение — код, который пытается выполнить несколько проходов итерации. Объект-контейнер (например,list) создаёт новый итератор каждый раз, когда вы передаёте его функцииiter()или используете в циклеfor. При попытке сделать то же самое с итератором будет возвращён тот же исчерпанный объект-итератор, который использовался в предыдущем проходе, и он будет выглядеть как пустой контейнер.Дополнительные сведения приведены в разделе Типы итераторов.
Особенность реализации CPython: CPython не всегда соблюдает требование о том, что итератор должен определять
__iter__(). Также обратите внимание, что CPython со свободной многопоточностью не гарантирует потокобезопасность операций с итераторами. -
key function -
Ключевая функция, или функция сортировки, — это вызываемый объект, возвращающий значение, используемое для сортировки или упорядочения. Например,
locale.strxfrm()используется для создания ключа сортировки, учитывающего региональные правила сортировки.Ряд инструментов Python принимает ключевые функции для управления порядком элементов или их группировкой. К ним относятся
min(),max(),sorted(),list.sort(),heapq.merge(),heapq.nsmallest(),heapq.nlargest()иitertools.groupby().Ключевую функцию можно создать несколькими способами. Например, метод
str.lower()можно использовать как ключевую функцию для сортировки без учёта регистра. Кроме того, ключевую функцию можно создать с помощью выраженияlambda, напримерlambda r: (r[0], r[2]). Также конструкторами ключевых функций являютсяoperator.attrgetter(),operator.itemgetter()иoperator.methodcaller(). Примеры создания и использования ключевых функций см. в разделе Руководство по сортировке. -
keyword argument -
См. аргумент.
-
lambda -
Анонимная встроенная функция, состоящая из одного выражения, которое вычисляется при вызове функции. Синтаксис создания лямбда-функции:
lambda [parameters]: expression -
LBYL -
«Сначала посмотри, потом прыгай» (Look before you leap). При таком стиле программирования перед вызовом функции или поиском элемента явно проверяются предварительные условия. Этот подход противопоставляется подходу EAFP и характеризуется наличием множества инструкций
if.В многопоточной среде подход LBYL может привести к состоянию гонки между «проверкой» и «действием». Например, код
if key in mapping: return mapping[key]может завершиться ошибкой, если другой поток удалит key из mapping после проверки, но до поиска элемента. Эту проблему можно решить с помощью блокировок или используя подход EAFP. -
lexical analyzer -
Формальное название токенизатора; см. токен.
-
list -
Встроенная в Python последовательность. Несмотря на название, она больше напоминает массив из других языков, чем связный список, поскольку доступ к элементам имеет сложность O(1).
-
list comprehension -
Компактный способ обработать все элементы последовательности или их часть и вернуть список результатов.
result = ['{:#04x}'.format(x) for x in range(256) if x % 2 == 0]создаёт список строк, содержащих чётные шестнадцатеричные числа (0x..) в диапазоне от 0 до 255. Условиеifнеобязательно. Если оно опущено, обрабатываются все элементы вrange(256). -
loader -
Объект, который загружает модуль. Для реализации интерфейса
Loaderон должен определять методыexec_module()иcreate_module(). Загрузчик обычно возвращается искателем. См. также: -
locale encoding -
В Unix это кодировка локали LC_CTYPE. Её можно задать с помощью
locale.setlocale(locale.LC_CTYPE, new_locale).В Windows это кодовая страница ANSI (например,
"cp1252").В Android и VxWorks Python использует
"utf-8"в качестве кодировки локали.Для получения кодировки локали можно использовать
locale.getencoding(). -
magic method -
Неофициальный синоним термина специальный метод.
-
mapping -
Объект-контейнер, поддерживающий произвольный поиск по ключам и реализующий методы, указанные в
collections.abc.Mappingилиcollections.abc.MutableMapping— абстрактных базовых классах. Примеры:dict,collections.defaultdict,collections.OrderedDictиcollections.Counter. -
meta path finder -
sys.meta_pathвозвращает искатель при поиске. Искатели метапути связаны с искателями элементов пути, но отличаются от них.Описание методов, которые реализуют искатели метапути, см. в
importlib.abc.MetaPathFinder. -
metaclass -
Класс класса. Определение класса создаёт имя класса, словарь класса и список базовых классов. Метакласс отвечает за создание класса из этих трёх аргументов. В большинстве объектно-ориентированных языков программирования предусмотрена реализация по умолчанию. Особенность Python состоит в том, что здесь можно создавать пользовательские метаклассы. Большинству пользователей этот инструмент не нужен, но при необходимости метаклассы позволяют создавать мощные и элегантные решения. Их используют для журналирования доступа к атрибутам, добавления потокобезопасности, отслеживания создания объектов, реализации одиночек и решения многих других задач.
Дополнительные сведения приведены в разделе Метаклассы.
-
method -
Функция, определённая внутри тела класса. Если вызвать её как атрибут экземпляра этого класса, метод получит объект экземпляра в качестве первого аргумента (обычно его называют
self). См. функция и вложенная область видимости. -
method resolution order -
Порядок разрешения методов — это порядок, в котором при поиске просматриваются базовые классы. Подробное описание алгоритма, используемого интерпретатором Python начиная с версии 2.3, см. в разделе Порядок разрешения методов в Python 2.3.
-
module -
Объект, служащий организационной единицей кода Python. Модули имеют пространство имён, содержащее произвольные объекты Python. Модули загружаются в Python посредством импорта.
См. также пакет.
-
module spec -
Пространство имён, содержащее информацию, связанную с импортом и используемую для загрузки модуля. Экземпляр
importlib.machinery.ModuleSpec.См. также Спецификации модулей.
-
MRO -
mutable -
Изменяемые объекты могут менять своё значение, сохраняя при этом свой
id(). См. также неизменяемый. -
named tuple -
Термин «именованный кортеж» относится к любому типу или классу, наследующемуся от tuple, элементы которого доступны по индексу, а также по именованным атрибутам. У такого типа или класса могут быть и другие возможности.
К именованным кортежам относятся несколько встроенных типов, в том числе значения, возвращаемые функциями
time.localtime()иos.stat(). Ещё один пример —sys.float_info:>>> sys.float_info[1] # indexed access 1024 >>> sys.float_info.max_exp # named field access 1024 >>> isinstance(sys.float_info, tuple) # kind of tuple True
Некоторые именованные кортежи являются встроенными типами (как в примерах выше). Кроме того, именованный кортеж можно создать на основе обычного определения класса, унаследовав его от
tupleи определив именованные поля. Такой класс можно написать вручную, создать путём наследования отtyping.NamedTupleили с помощью фабричной функцииcollections.namedtuple(). Последние способы также добавляют дополнительные методы, которых может не быть у написанных вручную или встроенных именованных кортежей. -
namespace -
Место, где хранится переменная. Пространства имён реализованы в виде словарей. Существуют локальное, глобальное и встроенное пространства имён, а также вложенные пространства имён в объектах (в методах). Пространства имён обеспечивают модульность, предотвращая конфликты имён. Например, функции
builtins.openиos.open()различаются своими пространствами имён. Пространства имён также повышают читаемость и удобство сопровождения кода, позволяя определить, какой модуль реализует функцию. Например, записьrandom.seed()илиitertools.islice()ясно указывает, что эти функции реализованы соответственно модулямиrandomиitertools. -
namespace package -
Пакет, служащий только контейнером для подпакетов. Пространственные пакеты могут не иметь физического представления и, в частности, не являются обычными пакетами, поскольку у них нет файла
__init__.py.Пространственные пакеты позволяют нескольким пакетам, устанавливаемым независимо друг от друга, иметь общий родительский пакет. В противном случае рекомендуется использовать обычный пакет.
Дополнительные сведения см. в PEP 420 и разделе Пространственные пакеты.
См. также модуль.
-
nested scope -
Возможность обращаться к переменной во внешнем определении. Например, функция, определённая внутри другой функции, может обращаться к переменным внешней функции. Обратите внимание: по умолчанию вложенные области видимости работают только при обращении к переменным, но не при присваивании. Локальные переменные считываются и изменяются во внутренней области видимости. Аналогично, глобальные переменные считываются и изменяются в глобальном пространстве имён. Инструкция
nonlocalпозволяет выполнять запись во внешние области видимости. -
new-style class -
Прежнее название разновидности классов, которая теперь используется для всех объектов-классов. В ранних версиях Python только классы нового стиля могли использовать такие новые универсальные возможности Python, как
__slots__, дескрипторы, свойства,__getattribute__(), методы классов и статические методы. -
object -
Любые данные с состоянием (атрибутами или значением) и определённым поведением (методами). Также базовый класс для любого класса нового стиля.
-
optimized scope -
Область видимости, в которой имена целевых локальных переменных достоверно известны компилятору во время компиляции кода, что позволяет оптимизировать чтение и запись этих имён. Таким образом оптимизируются локальные пространства имён функций, генераторов, сопрограмм, включений и генераторных выражений. Примечание: большинство оптимизаций интерпретатора применяется ко всем областям видимости; только оптимизации, основанные на известном наборе локальных и нелокальных имён переменных, ограничены оптимизированными областями видимости.
-
package -
Модуль Python, который может содержать подмодули или, рекурсивно, подпакеты. Технически пакет — это модуль Python с атрибутом
__path__.См. также обычный пакет и пространственный пакет.
-
parameter -
Именованная сущность в определении функции (или метода), задающая аргумент (или в некоторых случаях аргументы), которые функция может принимать. Существует пять видов параметров:
-
позиционный или именованный: задаёт аргумент, который можно передать как позиционный или как именованный аргумент. Это вид параметра по умолчанию; например, foo и bar в следующем примере:
def func(foo, bar=None): ...
-
только позиционный: задаёт аргумент, который можно передать только по позиции. Параметры, передаваемые только по позиции, можно определить, добавив символ
/после них в списке параметров определения функции; например, posonly1 и posonly2 в следующем примере:def func(posonly1, posonly2, /, positional_or_keyword): ...
-
только именованный: задаёт аргумент, который можно передать только по имени. Параметры, передаваемые только по имени, можно определить, добавив перед ними в список параметров определения функции один параметр с переменным позиционным числом аргументов или отдельный
*; например, kw_only1 и kw_only2 в следующем примере:def func(arg, *, kw_only1, kw_only2): ...
-
с переменным позиционным числом аргументов: задаёт возможность передать произвольную последовательность позиционных аргументов (в дополнение к позиционным аргументам, принимаемым другими параметрами). Такой параметр можно определить, добавив
*перед его именем; например, args в следующем примере:def func(*args, **kwargs): ...
-
с переменным числом именованных аргументов: задаёт возможность передать произвольное количество именованных аргументов (в дополнение к именованным аргументам, принимаемым другими параметрами). Такой параметр можно определить, добавив
**перед его именем; например, kwargs в примере выше.
Параметры могут задавать как необязательные, так и обязательные аргументы, а также значения по умолчанию для некоторых необязательных аргументов.
См. также статью глоссария аргумент, ответ на часто задаваемый вопрос о разнице между аргументами и параметрами, класс
inspect.Parameter, раздел Определения функций и PEP 362. -
-
path entry -
Отдельное местоположение в пути импорта, которое проверяет искатель на основе пути при поиске модулей для импорта.
-
path entry finder -
sys.path_hooksвозвращает искатель, вызываемый из списка (то есть обработчик элемента пути), который умеет находить модули по заданному элементу пути.Описание методов, которые реализуют искатели элементов пути, см. в
importlib.abc.PathEntryFinder. -
path entry hook -
Вызываемый объект в списке
sys.path_hooks, который возвращает искатель элемента пути, если умеет находить модули по определённому элементу пути. -
path based finder -
Один из стандартных искателей метапути, выполняющий поиск модулей в пути импорта.
-
path-like object -
Объект, представляющий путь в файловой системе. Объект, подобный пути, — это либо объект
strилиbytes, представляющий путь, либо объект, реализующий протоколos.PathLike. Объект, поддерживающий протоколos.PathLike, можно преобразовать в путь файловой системы типаstrилиbytes, вызвав функциюos.fspath(); функцииos.fsdecode()иos.fsencode()позволяют гарантированно получить результат типаstrилиbytesсоответственно. Появился в PEP 519. -
PEP
-
Предложение по развитию Python. PEP — это проектный документ, содержащий информацию для сообщества Python или описывающий новую функцию Python, его процессы или среду. PEP должны содержать краткую техническую спецификацию и обоснование предлагаемых функций.
PEP предназначены для того, чтобы служить основным механизмом предложения крупных новых функций, сбора мнений сообщества по тому или иному вопросу и документирования проектных решений, принятых в Python. Автор PEP отвечает за достижение консенсуса в сообществе и документирование мнений несогласных.
См. PEP 1.
-
portion -
Набор файлов в одном каталоге (возможно, хранящихся в zip-файле), которые входят в состав пакета пространства имён, определённого в PEP 420.
-
positional argument -
См. аргумент.
-
provisional API -
Предварительный API — это API, намеренно исключённый из гарантий обратной совместимости стандартной библиотеки. Хотя серьёзные изменения таких интерфейсов не ожидаются, пока они помечены как предварительные, разработчики ядра могут вносить несовместимые изменения, вплоть до удаления интерфейса, если сочтут это необходимым. Такие изменения не будут вноситься без веской причины — они произойдут только в том случае, если обнаружатся серьёзные фундаментальные недостатки, пропущенные до включения API.
Даже для предварительных API несовместимые изменения считаются «крайней мерой» — при решении выявленных проблем по-прежнему будут предприниматься все попытки найти обратно совместимое решение.
Этот процесс позволяет стандартной библиотеке продолжать развиваться со временем, не закрепляя на длительный срок проблемные проектные ошибки. Подробнее см. в PEP 411.
-
provisional package -
См. предварительный API.
-
Python 3000 -
Неофициальное название ветки выпусков Python 3.x (появилось давно, когда выпуск версии 3 казался далёким будущим). Также сокращается до «Py3k».
-
Pythonic -
Идея или фрагмент кода, который точно следует наиболее распространённым идиомам языка Python, а не использует подходы, принятые в других языках. Например, распространённая идиома в Python — перебирать все элементы итерируемого объекта с помощью инструкции
for. Во многих других языках такой конструкции нет, поэтому незнакомые с Python разработчики иногда используют числовой счётчик:for i in range(len(food)): print(food[i])В отличие от более чистого, идиоматичного для Python способа:
for piece in food: print(piece) -
qualified name -
Имя с точками, показывающее «путь» от глобальной области видимости модуля к классу, функции или методу, определённому в этом модуле, как описано в PEP 3155. Для функций и классов верхнего уровня квалифицированное имя совпадает с именем объекта:
>>> class C: ... class D: ... def meth(self): ... pass ... >>> C.__qualname__ 'C' >>> C.D.__qualname__ 'C.D' >>> C.D.meth.__qualname__ 'C.D.meth'
При использовании в отношении модулей полное квалифицированное имя означает весь путь к модулю, разделённый точками, включая все родительские пакеты, например
email.mime.text:>>> import email.mime.text >>> email.mime.text.__name__ 'email.mime.text'
-
reference count -
Количество ссылок на объект. Когда счётчик ссылок объекта достигает нуля, объект освобождается. Некоторые объекты бессмертны: их счётчики ссылок никогда не изменяются, поэтому такие объекты никогда не освобождаются. Подсчёт ссылок обычно не виден в коде Python, но является ключевым элементом реализации CPython. Программисты могут вызвать функцию
sys.getrefcount(), чтобы получить количество ссылок на конкретный объект.В CPython счётчики ссылок не считаются стабильными или однозначно определёнными значениями; число ссылок на объект и то, как на него влияет код Python, могут различаться в разных версиях.
-
regular package -
Традиционный пакет, например каталог, содержащий файл
__init__.py.См. также пакет пространства имён.
-
REPL -
Акроним выражения «цикл чтения–вычисления–вывода» (read–eval–print loop), другое название интерактивной оболочки интерпретатора.
-
__slots__ -
Объявление внутри класса, позволяющее экономить память за счёт предварительного выделения места для атрибутов экземпляра и исключения словарей экземпляров. Хотя этот приём популярен, правильно применять его довольно непросто; лучше использовать его лишь в редких случаях, когда в приложении с ограничениями по памяти создаётся очень много экземпляров.
-
sequence -
Итерируемый объект, который поддерживает эффективный доступ к элементам по целочисленным индексам с помощью специального метода
__getitem__()и определяет метод__len__(), возвращающий длину последовательности. Некоторые встроенные типы последовательностей:list,str,tupleиbytes. Обратите внимание:dictтакже поддерживает__getitem__()и__len__(), но считается отображением, а не последовательностью, поскольку для поиска используются произвольные хешируемые ключи, а не целые числа.Абстрактный базовый класс
collections.abc.Sequenceопределяет гораздо более богатый интерфейс, выходящий за рамки только__getitem__()и__len__(): он добавляетcount(),index(),__contains__()и__reversed__(). Типы, реализующие этот расширенный интерфейс, можно явно зарегистрировать с помощьюregister(). Дополнительные сведения о методах последовательностей в целом см. в разделе Общие операции с последовательностями. -
set comprehension -
Краткий способ обработать все или некоторые элементы итерируемого объекта и вернуть множество результатов.
results = {c for c in 'abracadabra' if c not in 'abc'}создаёт множество строк{'r', 'd'}. См. раздел Отображение списков, множеств и словарей. -
single dispatch -
Форма диспетчеризации обобщённой функции, при которой реализация выбирается на основе типа одного аргумента.
-
slice -
Объект, обычно содержащий часть последовательности. Срез создаётся с помощью индексной нотации:
[]; если указано несколько чисел, между ними ставятся двоеточия, как вvariable_name[1:3:5]. Внутри квадратные скобки (индексная нотация) используют объектыslice. -
soft deprecated -
Мягко устаревший API не следует использовать в новом коде, но его безопасно использовать в уже существующем коде. API остаётся документированным и тестируемым, однако дальнейшего развития не будет.
В отличие от обычного устаревания, мягкое устаревание не предполагает удаления API и не приводит к выдаче предупреждений.
-
special method -
Метод, который Python неявно вызывает для выполнения определённой операции над типом, например сложения. Имена таких методов начинаются и заканчиваются двумя символами подчёркивания. Специальные методы описаны в разделе Имена специальных методов.
-
standard library -
Набор пакетов, модулей и модулей расширения, распространяемых в составе официального пакета интерпретатора Python. Точный состав этого набора может зависеть от платформы, доступных системных библиотек и других критериев. Документация доступна в разделе Стандартная библиотека Python.
Список всех возможных имён модулей стандартной библиотеки см. также в
sys.stdlib_module_names. -
statement -
Инструкция является частью составной инструкции (блока кода). Инструкция может быть выражением или одной из нескольких конструкций с ключевым словом, например
if,whileилиfor. -
static type checker -
Внешний инструмент, который читает и анализирует код Python, выявляя такие проблемы, как ошибки типов. См. также подсказки типов и модуль
typing. -
stdlib -
Сокращение от стандартная библиотека.
-
strong reference -
В C API Python сильная ссылка — это ссылка на объект, которым владеет код, содержащий эту ссылку. Сильная ссылка создаётся вызовом
Py_INCREF()и освобождается вызовомPy_DECREF()при удалении ссылки.Для создания сильной ссылки на объект можно использовать функцию
Py_NewRef(). Обычно перед выходом из области действия сильной ссылки необходимо вызвать для неё функциюPy_DECREF(), чтобы избежать утечки ссылки.См. также заимствованная ссылка.
-
text encoding -
Строка в Python — это последовательность кодовых точек Юникода (в диапазоне
U+0000–U+10FFFF). Чтобы сохранить или передать строку, её необходимо сериализовать в последовательность байтов.Сериализация строки в последовательность байтов называется «кодированием», а восстановление строки из последовательности байтов — «декодированием».
Существует множество различных кодеков для сериализации текста, которые в совокупности называются «текстовыми кодировками».
-
text file -
Файловый объект, способный читать и записывать объекты
str. Часто текстовый файл фактически обращается к потоку данных, ориентированному на байты, и автоматически обрабатывает текстовую кодировку. К текстовым файлам относятся файлы, открытые в текстовом режиме ('r'или'w'),sys.stdin,sys.stdoutи экземплярыio.StringIO.См. также двоичный файл — файловый объект, способный читать и записывать объекты, подобные байтам.
-
token -
Небольшая единица исходного кода, созданная лексическим анализатором (также называемым токенизатором). Имена, числа, строки, операторы, символы новой строки и подобные элементы представлены токенами.
Модуль
tokenizeпредоставляет лексический анализатор Python. Модульtokenсодержит сведения о различных типах токенов. -
triple-quoted string -
Строка, ограниченная тремя двойными кавычками (”) или тремя апострофами (‘). Хотя такие строки не предоставляют возможностей, недоступных обычным строкам в одинарных кавычках, они полезны по ряду причин. Они позволяют включать в строку неэкранированные одинарные и двойные кавычки и могут занимать несколько строк без использования символа продолжения, что делает их особенно удобными для написания строк документации.
-
type -
Тип объекта Python определяет, что это за объект; у каждого объекта есть тип. Тип объекта доступен через атрибут
__class__или может быть получен с помощьюtype(obj). -
type alias -
Синоним типа, создаваемый присваиванием типа идентификатору.
Псевдонимы типов помогают упростить подсказки типов. Например:
def remove_gray_shades( colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]: passможно записать более понятным образом:
Color = tuple[int, int, int] def remove_gray_shades(colors: list[Color]) -> list[Color]: pass -
type hint -
Аннотация, указывающая ожидаемый тип переменной, атрибута класса, параметра функции или возвращаемого значения.
Подсказки типов необязательны и не проверяются Python, но полезны для статических анализаторов типов. Они также помогают IDE выполнять автодополнение кода и рефакторинг.
Подсказки типов глобальных переменных, атрибутов классов и функций, но не локальных переменных, можно получить с помощью
typing.get_type_hints(). -
universal newlines -
Способ интерпретации текстовых потоков, при котором все следующие обозначения распознаются как конец строки: символ конца строки Unix
'\n', обозначение Windows'\r\n'и старое обозначение Macintosh'\r'. См. PEP 278 и PEP 3116, а также описаниеbytes.splitlines(), где этот способ используется дополнительно. -
variable annotation -
Аннотация переменной или атрибута класса.
При аннотировании переменной или атрибута класса присваивание необязательно:
class C: field: 'annotation'Аннотации переменных обычно используются для подсказок типов: например, ожидается, что эта переменная будет принимать значения типа
int:count: int = 0
Синтаксис аннотаций переменных описан в разделе Инструкции присваивания с аннотацией.
См. аннотация функции, PEP 484 и PEP 526, где описана эта функция. Рекомендации по работе с аннотациями см. также в разделе Рекомендации по использованию аннотаций.
-
virtual environment -
Изолированная среда выполнения, создаваемая совместно, которая позволяет пользователям Python и приложениям устанавливать и обновлять пакеты дистрибутивов Python, не влияя на работу других приложений Python в той же системе.
См. также
venv. -
virtual machine -
Компьютер, полностью реализованный программными средствами. Виртуальная машина Python выполняет байткод, созданный компилятором байткода.
-
walrus operator -
Шутливое название оператора выражения присваивания
:=: если наклонить голову, он немного напоминает моржа. -
Zen of Python -
Список принципов и философских идей, лежащих в основе проектирования Python и помогающих понять язык и использовать его. Список можно вывести, введя «
import this» в интерактивном приглашении.
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/glossary.html