Глосарій¶
>>>
¶The default Python prompt of the interactive shell. Often seen for code examples which can be executed interactively in the interpreter.
...
¶Може посилатися на:
The default Python prompt of the interactive shell when entering the code for an indented code block, when within a pair of matching left and right delimiters (parentheses, square brackets, curly braces or triple quotes), or after specifying a decorator.
Вбудована константа
Ellipsis
.
- 2to3¶
A tool that tries to convert Python 2.x code to Python 3.x code by handling most of the incompatibilities which can be detected by parsing the source and traversing the parse tree.
2to3 is available in the standard library as
lib2to3
; a standalone entry point is provided asTools/scripts/2to3
. See 2to3 — Automated Python 2 to 3 code translation.- абстрактний базовий клас¶
Абстрактні базові класи доповнюють duck-typing, надаючи спосіб для визначення інтерфейсів, коли інші методи, такі як
hasattr()
, були б незручними або дещо неправильними (наприклад, з магічними методами). ABC вводить віртуальні підкласи, що є класами, які не успадковуються від класу, але все ще можуть розпізнватися за допомогоюisinstance()
таissubclass()
; дивіться документацію модуляabc
. Python має багато вбудованх ABC для різних структур(у модуліcollections.abc
), чисел (у модуліnumbers
), потоків (у модуліio
) , шукачів імпортів і завантажувачів (у модуліimportlib.abc
). Ви можете створювати власні азбуки за допомогою модуляabc
.- анотація¶
Мітка, пов’язана зі змінною, атрибутом класу або параметром функції чи результатом функції, застосовується за конвенцією як type hint.
Анотації локальних змінних недоступні під час виконання, але анотації глобальних змінних, атрибутів класів і функцій зберігаються в спеціальному атрибуті
__annotations__
модулів, класів і функцій відповідно.Перегляньте variable annotation, function annotation, PEP 484 та PEP 526, які описують цю функціональність. Також перегляньте Рекомендації щодо анотацій, щоб дізнатися про найкращі практики роботи з анотаціями.
- аргумент¶
Значення, яке передається function (або method) під час виклику функції. Існує два види аргументів:
keyword argument: аргумент, якому передує ідентифікатор (наприклад,
name=
) під час виклику функції або передається як значення в словнику перед яким**
. Наприклад,3
і5
є ключовими аргументами в наступних викликахcomplex()
:complex(real=3, imag=5) complex(**{'real': 3, 'imag': 5})
positional argument: аргумент, який не є аргументом ключового слова. Позиційні аргументи можуть з’являтися на початку списку аргументів і/або передаватися як елементи iterable, яким передує
*
. Наприклад,3
і5
є позиційними аргументами в наступних викликах:complex(3, 5) complex(*(3, 5))
Аргументи призначаються названим локальним змінним у тілі функції. Перегляньте розділ Дзвінки для правил, що регулюють це призначення. Синтаксично будь-який вираз можна використовувати для представлення аргументу; обчислене значення присвоюється локальній змінній.
Дивіться також parameter глосарій, питання FAQ про різницю між аргументами та параметрами, і PEP 362.
- менеджер асинхронного контексту¶
Об’єкт, що контролює оточення, вказаний у інструкції
async with
визначенням методів__aenter__()
і__aexit__()
. Запроваджено у PEP 492.- асинхронний генератор¶
Функція, яка повертає asynchronous generator iterator. Це виглядає як функція співпрограми, визначена за допомогою
async def
, за винятком того, що вона містить виразиyield
для створення серії значень, які можна використовувати в цикліasync for
.Зазвичай відноситься до функції асинхронного генератора, але в деяких контекстах може посилатися на ітератор асинхронного генератора. У випадках, коли передбачуване значення не є зрозумілим, використання повних термінів дозволяє уникнути двозначності.
Функція асинхронного генератора може містити вирази
await
, а також операториasync for
іasync with
.- ітератор асинхронного генератора¶
Об’єкт, створений функцією asynchronous generator.
Це асинхронний ітератор, який при виклику за допомогою методу
__anext__()
повертає очікуваний об’єкт, який виконає тіло функції асинхронного генератора до наступного виразу:keyword:yield .Кожен
yield
тимчасово призупиняє обчислення, запам’ятовує розташування стану виконання (включно з локальними змінними і необробленими інструкціями try). Коли ітератор асинхронного генератора відновить роботу за допомогою іншого очікуваного значення, повернутого методом__anext__()
, виконання продовжиться з місця зупинки. Дивіться PEP 492 і PEP 525.- асинхронний ітерований¶
Об’єкт, який можна використовувати в інструкції
async for
. Повинен повертати an асинхронний ітератор своїм методом__aiter__()
. Запроваджено у PEP 492.- асинхронний ітератор¶
Об’єкт, який реалізує методи
__aiter__()
та__anext__()
.__anext__()
має повертати очікуваний об’єкт.async for
обчислює очікувані об’єкти, повернуті методом асинхронноо ітератора__anext__()
, доки він не створює винятокStopAsyncIteration
. Запроваджено PEP 492.- атрибут¶
A value associated with an object which is usually referenced by name using dotted expressions. For example, if an object o has an attribute a it would be referenced as o.a.
It is possible to give an object an attribute whose name is not an identifier as defined by Ідентифікатори та ключові слова, for example using
setattr()
, if the object allows it. Such an attribute will not be accessible using a dotted expression, and would instead need to be retrieved withgetattr()
.- очікуваний¶
An object that can be used in an
await
expression. Can be a coroutine or an object with an__await__()
method. See also PEP 492.- BDFL¶
Доброзичливий диктатор на все життя (BDFL - Benevolent Dictator For Life), також відомий як Гвідо ван Россум, творець Python.
- двійковий файл¶
A file object able to read and write bytes-like objects. Examples of binary files are files opened in binary mode (
'rb'
,'wb'
or'rb+'
),sys.stdin.buffer
,sys.stdout.buffer
, and instances ofio.BytesIO
andgzip.GzipFile
.Дивіться також text file для об’єкта файлу, здатного читати та записувати об’єкти
str
.- запозичене посилання¶
In Python’s C API, a borrowed reference is a reference to an object, where the code using the object does not own the reference. It becomes a dangling pointer if the object is destroyed. For example, a garbage collection can remove the last strong reference to the object and so destroy it.
Виклик
Py_INCREF()
для borrowed reference рекомендовано для перетворення його на strong reference на місці, за винятком випадків, коли об’єкт не можна знищити до останнього використання запозиченого посилання. ФункціюPy_NewRef()
можна використати для створення нового strong reference.- байтоподібний об’єкт¶
Об’єкт, який підтримує Буферний протокол і може експортувати буфер C-contiguous. Це включає всі об’єкти
bytes
,bytearray
іarray.array
, а також багато поширених об’єктівmemoryview
. Байтоподібні об’єкти можна використовувати для різних операцій, які працюють з двійковими даними; вони включають стиснення, збереження у бінарний файл і надсилання через сокет.Для деяких операцій двійкові дані повинні бути змінними. У документації вони часто називаються «байтоподібними об’єктами читання-запису». Приклади змінних буферних об’єктів включають
bytearray
іmemoryview
bytearray
. Інші операції вимагають, щоб двійкові дані зберігалися в незмінних об’єктах («байтоподібні об’єкти лише для читання»); прикладами таких єbytes
іmemoryview
об’єктаbytes
.- байт-код¶
Вихідний код Python компілюється в байт-код, внутрішнє представлення програми Python в інтерпретаторі CPython. Байт-код також кешується у файлах
.pyc
, тому виконання того самого файлу відбувається швидше вдруге (можна уникнути перекомпіляції з вихідного коду в байт-код). Кажуть, що ця «проміжна мова» працює на virtual machine, яка виконує машинний код, що відповідає кожному байт-коду. Зауважте, що байт-коди не повинні працювати між різними віртуальними машинами Python, а також бути стабільними між випусками Python.Список інструкцій байт-коду можна знайти в документації для the dis module.
- викликний¶
A callable is an object that can be called, possibly with a set of arguments (see argument), with the following syntax:
callable(argument1, argument2, argumentN)
A function, and by extension a method, is a callable. An instance of a class that implements the
__call__()
method is also a callable.- зворотній виклик¶
Функція підпрограми, яка передається як аргумент для виконання в певний момент у майбутньому.
- клас¶
Шаблон для створення користувальницьких об’єктів. Визначення класу зазвичай містять визначення методів, які працюють над екземплярами класу.
- змінна класу¶
Змінна, визначена в класі та призначена для зміни лише на рівні класу (тобто не в екземплярі класу).
- комплексне число¶
Розширення відомої дійсної системи числення, у якій усі числа виражаються як сума дійсної та уявної частин. Уявні числа — це дійсні кратні уявної одиниці (квадратного кореня з
-1
), які часто пишутьсяi
в математиці абоj
в інженерії. Python має вбудовану підтримку комплексних чисел, які записуються з використанням цієї останньої нотації; уявна частина записується з суфіксомj
, наприклад,3+1j
. Щоб отримати доступ до комплексних еквівалентів модуляmath
, використовуйтеcmath
. Використання комплексних чисел є досить просунутою математичною функцією. Якщо ви не усвідомлюєте потреби в них, майже впевнено, що можете спокійно їх ігнорувати.- контекстний менеджер¶
An object which controls the environment seen in a
with
statement by defining__enter__()
and__exit__()
methods. See PEP 343.- контекстна змінна¶
A variable which can have different values depending on its context. This is similar to Thread-Local Storage in which each execution thread may have a different value for a variable. However, with context variables, there may be several contexts in one execution thread and the main usage for context variables is to keep track of variables in concurrent asynchronous tasks. See
contextvars
.- суміжний¶
Буфер вважається безперервним, якщо він C-суміжний або Fortran безперервний. Нульвимірні буфери є суміжними на C і Fortran. В одновимірних масивах елементи повинні розташовуватися в пам’яті поруч один з одним у порядку зростання індексів, починаючи з нуля. У багатовимірних C-суміжних масивах останній індекс змінюється найшвидше під час відвідування елементів у порядку адреси пам’яті. Однак у безперервних масивах Fortran перший індекс змінюється найшвидше.
- співпрограма¶
Співпрограми є більш узагальненою формою підпрограм. Підпрограми вводяться в одній точці і виходять з іншої. У співпрограми можна ввійти, вийти з них і відновити їх у багатьох різних точках. Їх можна реалізувати за допомогою оператора
async def
. Дивіться також PEP 492.- функція співпрограми¶
Функція, яка повертає об’єкт coroutine. Функція співпрограми може бути визначена оператором
async def
і може містити ключові словаawait
,async for
іasync with
. Їх представив PEP 492.- CPython¶
Канонічна реалізація мови програмування Python, яка розповсюджується на python.org. Термін «CPython» використовується, коли необхідно відрізнити цю реалізацію від інших, таких як Jython або IronPython.
- декоратор¶
Функція, що повертає іншу функцію, зазвичай застосовується як перетворення функції за допомогою синтаксису
@wrapper
. Типовими прикладами для декораторів єclassmethod()
іstaticmethod()
.Синтаксис декоратора є просто синтаксичним цукром, наступні два визначення функції семантично еквівалентні:
def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...
Така сама концепція існує для класів, але використовується там рідше. Перегляньте документацію щодо визначення функцій та визначення класів, щоб дізнатися більше про декоратори.
- дескриптор¶
Any object which defines the methods
__get__()
,__set__()
, or__delete__()
. When a class attribute is a descriptor, its special binding behavior is triggered upon attribute lookup. Normally, using a.b to get, set or delete an attribute looks up the object named b in the class dictionary for a, but if b is a descriptor, the respective descriptor method gets called. Understanding descriptors is a key to a deep understanding of Python because they are the basis for many features including functions, methods, properties, class methods, static methods, and reference to super classes.Для отримання додаткової інформації про методи дескрипторів див. Реалізація дескрипторів або Посібник з використання дескрипторів.
- словник¶
An associative array, where arbitrary keys are mapped to values. The keys can be any object with
__hash__()
and__eq__()
methods. Called a hash in Perl.- dictionary comprehension¶
Компактний спосіб обробки всіх або частини елементів у ітерації та повернення словника з результатами.
results = {n: n ** 2 for n in range(10)}
генерує словник, що містить ключn
, зіставлений зі значеннямn ** 2
. Дивіться Відображення списків, наборів і словників.- перегляд словника¶
Об’єкти, що повертаються з
dict.keys()
,dict.values()
іdict.items()
, називаються представленнями словника. Вони забезпечують динамічний перегляд словникових статей, що означає, що коли словник змінюється, перегляд відображає ці зміни. Щоб змусити перегляд словника стати повним списком, використовуйтеlist(dictview)
. Перегляньте Об’єкти перегляду словника.- рядок документації¶
A string literal which appears as the first expression in a class, function or module. While ignored when the suite is executed, it is recognized by the compiler and put into the
__doc__
attribute of the enclosing class, function or module. Since it is available via introspection, it is the canonical place for documentation of the object.- Качина типізація¶
Стиль програмування, який не дивиться на тип об’єкта, щоб визначити, чи має він правильний інтерфейс; замість цього метод або атрибут просто викликається або використовується («Якщо він схожий на качку і крякає як качка, це має бути качка».) Підкреслюючи інтерфейси, а не конкретні типи, добре розроблений код покращує свою гнучкість, дозволяючи поліморфне заміщення. Duck-введення дозволяє уникнути тестів з використанням
type()
абоisinstance()
. (Однак зауважте, що качиний тип може бути доповнений абстрактними базовими класами.) Замість цього зазвичай використовуютьсяhasattr()
тести або EAFP програмування.- EAFP¶
Легше попросити вибачення, ніж дозволу (Easier to ask for forgiveness than permission). Цей поширений стиль кодування Python припускає існування дійсних ключів або атрибутів і перехоплює винятки, якщо припущення виявиться хибним. Цей чистий і швидкий стиль характеризується наявністю багатьох операторів
try
іexcept
. Техніка контрастує зі стилем LBYL, поширеним у багатьох інших мовах, таких як C.- вираз¶
Частина синтаксису, яка може бути оцінена до певного значення. Іншими словами, вираз — це сукупність елементів виразу, таких як літерали, імена, доступ до атрибутів, оператори або виклики функцій, які повертають значення. На відміну від багатьох інших мов, не всі мовні конструкції є виразами. Існують також statements, які не можна використовувати як вирази, наприклад
while
. Присвоєння також є операторами, а не виразами.- модуль розширення¶
Модуль, написаний мовою C або C++, який використовує C API Python для взаємодії з ядром і кодом користувача.
- f-рядок¶
Рядкові літерали з префіксом
'f'
або'F'
зазвичай називаються «f-рядками», що є скороченням від форматованих рядкових літералів. Дивіться також PEP 498.- файловий об’єкт¶
An object exposing a file-oriented API (with methods such as
read()
orwrite()
) to an underlying resource. Depending on the way it was created, a file object can mediate access to a real on-disk file or to another type of storage or communication device (for example standard input/output, in-memory buffers, sockets, pipes, etc.). File objects are also called file-like objects or streams.Фактично існує три категорії файлових об’єктів: необроблені бінарні файли, буферизовані бінарні файли і текстові файли. Їхні інтерфейси визначені в модулі
io
. Канонічний спосіб створення файлового об’єкта – це використання функціїopen()
.- файлоподібний об’єкт¶
Синонім file object.
- кодування файлової системи та обробник помилок¶
Кодування та обробник помилок, які використовуються Python для декодування байтів з операційної системи та кодування Unicode до операційної системи.
Кодування файлової системи має гарантувати успішне декодування всіх байтів нижче 128. Якщо кодування файлової системи не забезпечує цю гарантію, функції API можуть викликати
UnicodeError
.Функції
sys.getfilesystemencoding()
іsys.getfilesystemencodeerrors()
можна використовувати для отримання кодування файлової системи та обробника помилок.filesystem encoding and error handler налаштовуються під час запуску Python за допомогою функції
PyConfig_Read()
: див.filesystem_encoding
іfilesystem_errors
члениPyConfig
.Дивіться також locale encoding.
- шукач¶
Об’єкт, який намагається знайти loader для модуля, який імпортується.
There are two types of finder: meta path finders for use with
sys.meta_path
, and path entry finders for use withsys.path_hooks
.See Шукачі та вантажники and
importlib
for much more detail.- поділ поверху¶
Математичне ділення, яке округлюється до найближчого цілого числа. Оператор поділу підлоги –
//
. Наприклад, вираз11 // 4
обчислюється як2
на відміну від2,75
, яке повертає float true division. Зауважте, що(-11) // 4
є-3
, тому що це-2,75
, округлене униз. Дивіться PEP 238.- функція¶
Серія операторів, які повертають певне значення абоненту. Йому також можна передати нуль або більше аргументів, які можуть бути використані під час виконання тіла. Дивіться також parameter, method і розділ Визначення функцій.
- анотація функції¶
annotation параметра функції або значення, що повертається.
Анотації функцій зазвичай використовуються для підказок типу: наприклад, ця функція має приймати два аргументи
int
і також має повертати значенняint
:def sum_two_numbers(a: int, b: int) -> int: return a + b
Синтаксис анотації функції пояснюється в розділі Визначення функцій.
Див. variable annotation і 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)
- збір сміття¶
Процес звільнення пам’яті, коли вона більше не використовується. Python виконує збирання сміття за допомогою підрахунку посилань і циклічного збирача сміття, здатного виявляти та розривати цикли посилань. Збирачем сміття можна керувати за допомогою модуля
gc
.- генератор¶
Функція, яка повертає generator iterator. Це виглядає як звичайна функція, за винятком того, що вона містить вирази
yield
для створення серії значень, які можна використовувати в циклі for або які можна отримати по одному за допомогою функціїnext()
.Зазвичай відноситься до функції-генератора, але в деяких контекстах може посилатися на ітератор-генератор. У випадках, коли передбачуване значення не є зрозумілим, використання повних термінів дозволяє уникнути двозначності.
- ітератор генератора¶
Об’єкт, створений функцією generator.
Кожен
yield
тимчасово призупиняє обробку, запам’ятовуючи стан виконання розташування (включно з локальними змінними та очікуваними операторами спроби). Коли ітератор-генератор продовжує роботу, він продовжує роботу з того місця, де зупинився (на відміну від функцій, які починаються заново під час кожного виклику).- генераторний вираз¶
An expression that returns an iterator. It looks like a normal expression followed by a
for
clause defining a loop variable, range, and an optionalif
clause. The combined expression generates values for an enclosing function:>>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81 285
- родова функція¶
Функція, що складається з кількох функцій, які реалізують ту саму операцію для різних типів. Яку реалізацію слід використовувати під час виклику, визначається алгоритмом диспетчеризації.
Дивіться також запис глосарію single dispatch, декоратор
functools.singledispatch()
і PEP 443.- родовий тип¶
type, який можна параметризувати; зазвичай це клас-контейнер, наприклад
list
абоdict
. Використовується для підказок типу та анотацій.Для отримання додаткової інформації див. загальні типи псевдонімів, PEP 483, PEP 484, PEP 585 і модуль
typing
.- GIL¶
Дивіться global interpreter lock.
- глобальне блокування інтерпретатора¶
Механізм, який використовується інтерпретатором CPython, щоб гарантувати, що лише один потік виконує bytecode Python за раз. Це спрощує реалізацію CPython, роблячи об’єктну модель (включно з критично важливими вбудованими типами, такими як
dict
) неявно захищеною від одночасного доступу. Блокування всього інтерпретатора полегшує багатопотоковість інтерпретатора за рахунок більшої частини паралелізму, який надають багатопроцесорні машини.However, some extension modules, either standard or third-party, are designed so as to release the GIL when doing computationally intensive tasks such as compression or hashing. Also, the GIL is always released when doing I/O.
Past efforts to create a «free-threaded» interpreter (one which locks shared data at a much finer granularity) have not been successful because performance suffered in the common single-processor case. It is believed that overcoming this performance issue would make the implementation much more complicated and therefore costlier to maintain.
- на основі хешу pyc¶
Файл кешу байт-коду, який використовує хеш, а не час останньої зміни відповідного вихідного файлу для визначення його дійсності. Перегляньте Анулювання кешованого байт-коду.
- хешований¶
An object is hashable if it has a hash value which never changes during its lifetime (it needs a
__hash__()
method), and can be compared to other objects (it needs an__eq__()
method). Hashable objects which compare equal must have the same hash value.Хешування робить об’єкт придатним для використання як ключ словника та член набору, оскільки ці структури даних використовують хеш-значення внутрішньо.
Більшість незмінних вбудованих об’єктів Python можна хешувати; змінні контейнери (такі як списки або словники) не є; незмінні контейнери (такі як кортежі та заморожені набори) можна хешувати, лише якщо їх елементи хешуються. Об’єкти, які є екземплярами визначених користувачем класів, хешуються за замовчуванням. Усі вони порівнюються неоднаково (за винятком самих себе), і їх хеш-значення походить від їхнього
id()
.- ПРОСТОЮЧИЙ¶
An Integrated Development and Learning Environment for Python. IDLE is a basic editor and interpreter environment which ships with the standard distribution of Python.
- immortal¶
Immortal objects are a CPython implementation detail introduced in PEP 683.
If an object is immortal, its reference count is never modified, and therefore it is never deallocated while the interpreter is running. For example,
True
andNone
are immortal in CPython.- незмінний¶
Об’єкт із фіксованим значенням. До незмінних об’єктів належать числа, рядки та кортежі. Такий об’єкт не можна змінити. Якщо потрібно зберегти інше значення, потрібно створити новий об’єкт. Вони відіграють важливу роль у місцях, де потрібне постійне хеш-значення, наприклад, як ключ у словнику.
- шлях імпорту¶
Список розташувань (або записів шляху), у яких path based finder шукає модулі для імпорту. Під час імпорту цей список розташувань зазвичай надходить із
sys.path
, але для підпакетів він також може надходити з атрибута__path__
батьківського пакета.- імпортування¶
Процес, за допомогою якого код Python в одному модулі стає доступним для коду Python в іншому модулі.
- імпортер¶
Об’єкт, який знаходить і завантажує модуль; як об’єкт finder, так і loader.
- інтерактивний¶
Python has an interactive interpreter which means you can enter statements and expressions at the interpreter prompt, immediately execute them and see their results. Just launch
python
with no arguments (possibly by selecting it from your computer’s main menu). It is a very powerful way to test out new ideas or inspect modules and packages (rememberhelp(x)
).- інтерпретований¶
Python є інтерпретованою мовою, на відміну від скомпільованої, хоча відмінність може бути розмитою через наявність компілятора байт-коду. Це означає, що вихідні файли можна запускати безпосередньо без явного створення виконуваного файлу, який потім запускається. Інтерпретовані мови зазвичай мають коротший цикл розробки/налагодження, ніж скомпільовані, хоча їхні програми також працюють повільніше. Дивіться також interactive.
- вимкнення перекладача¶
Коли його попросять завершити роботу, інтерпретатор Python переходить у спеціальну фазу, де він поступово звільняє всі виділені ресурси, такі як модулі та різні критичні внутрішні структури. Він також робить кілька викликів до збирача сміття. Це може ініціювати виконання коду в визначених користувачем деструкторах або зворотних викликах weakref. Код, який виконується під час фази завершення роботи, може зіткнутися з різними винятками, оскільки ресурси, на які він покладається, можуть більше не функціонувати (поширеними прикладами є бібліотечні модулі або механізм попереджень).
Основною причиною вимкнення інтерпретатора є завершення виконання модуля
__main__
або сценарію, який виконується.- ітерований¶
An object capable of returning its members one at a time. Examples of iterables include all sequence types (such as
list
,str
, andtuple
) and some non-sequence types likedict
, file objects, and objects of any classes you define with an__iter__()
method or with a__getitem__()
method that implements sequence semantics.Iterables can be used in a
for
loop and in many other places where a sequence is needed (zip()
,map()
, …). When an iterable object is passed as an argument to the built-in functioniter()
, it returns an iterator for the object. This iterator is good for one pass over the set of values. When using iterables, it is usually not necessary to calliter()
or deal with iterator objects yourself. Thefor
statement does that automatically for you, creating a temporary unnamed variable to hold the iterator for the duration of the loop. See also iterator, sequence, and generator.- ітератор¶
An object representing a stream of data. Repeated calls to the iterator’s
__next__()
method (or passing it to the built-in functionnext()
) return successive items in the stream. When no more data are available aStopIteration
exception is raised instead. At this point, the iterator object is exhausted and any further calls to its__next__()
method just raiseStopIteration
again. Iterators are required to have an__iter__()
method that returns the iterator object itself so every iterator is also iterable and may be used in most places where other iterables are accepted. One notable exception is code which attempts multiple iteration passes. A container object (such as alist
) produces a fresh new iterator each time you pass it to theiter()
function or use it in afor
loop. Attempting this with an iterator will just return the same exhausted iterator object used in the previous iteration pass, making it appear like an empty container.Більше інформації можна знайти в Типи ітераторів.
Деталі реалізації CPython: CPython does not consistently apply the requirement that an iterator define
__iter__()
.- ключова функція¶
Ключова функція або функція зіставлення — це виклик, який повертає значення, яке використовується для сортування або впорядкування. Наприклад,
locale.strxfrm()
використовується для створення ключа сортування, який враховує умови сортування для певної мови.Кілька інструментів у Python приймають ключові функції для керування тим, як елементи впорядковуються чи групуються. Серед них
min()
,max()
,sorted()
,list.sort()
,heapq.merge()
,heapq.nsmallest()
,heapq.nlargest()
іitertools.groupby()
.There are several ways to create a key function. For example. the
str.lower()
method can serve as a key function for case insensitive sorts. Alternatively, a key function can be built from alambda
expression such aslambda r: (r[0], r[2])
. Also,operator.attrgetter()
,operator.itemgetter()
, andoperator.methodcaller()
are three key function constructors. See the Sorting HOW TO for examples of how to create and use key functions.- аргумент ключового слова¶
Дивіться argument.
- лямбда¶
Анонімна вбудована функція, що складається з одного expression, який обчислюється під час виклику функції. Синтаксис створення лямбда-функції такий:
лямбда [параметри]: вираз
- LBYL¶
Сім разів відміряй, один раз відріж. Цей стиль кодування явно перевіряє попередні умови перед здійсненням викликів або пошуку. Цей стиль контрастує з підходом EAFP і характеризується наявністю багатьох операторів
if
.У багатопоточному середовищі підхід LBYL може загрожувати введенням умов змагання між «дивлячим» і «стрибаючим». Наприклад, код
if key in mapping: return mapping[key]
може завершитися помилкою, якщо інший потік видаляє key із mapping після перевірки, але перед пошуком. Цю проблему можна вирішити за допомогою блокувань або використання підходу EAFP.- список¶
A built-in Python sequence. Despite its name it is more akin to an array in other languages than to a linked list since access to elements is O(1).
- розуміння списку¶
Компактний спосіб обробки всіх або частини елементів у послідовності та повернення списку з результатами.
result = ['{:#04x}'.format(x) for x in range(256) if x % 2 == 0]
створює список рядків, що містять парні шістнадцяткові числа (0x..) у діапазон від 0 до 255. Реченняif
є необов’язковим. Якщо опущено, обробляються всі елементи в діапазоні (256).- навантажувач¶
An object that loads a module. It must define a method named
load_module()
. A loader is typically returned by a finder. See also:- кодування локалі¶
On Unix, it is the encoding of the LC_CTYPE locale. It can be set with
locale.setlocale(locale.LC_CTYPE, new_locale)
.On Windows, it is the ANSI code page (ex:
"cp1252"
).On Android and VxWorks, Python uses
"utf-8"
as the locale encoding.locale.getencoding()
can be used to get the locale encoding.See also the filesystem encoding and error handler.
- магічний метод¶
Неофіційний синонім слова special method.
- відображення¶
A container object that supports arbitrary key lookups and implements the methods specified in the
collections.abc.Mapping
orcollections.abc.MutableMapping
abstract base classes. Examples includedict
,collections.defaultdict
,collections.OrderedDict
andcollections.Counter
.- мета-шлях пошуку¶
finder, що повертається в результаті пошуку
sys.meta_path
. Засоби пошуку меташляхів пов’язані з засобами пошуку записів шляху, але відрізняються від них.Перегляньте
importlib.abc.MetaPathFinder
методи, які реалізують засоби пошуку меташляхів.- метаклас¶
Клас класу. Визначення класу створюють назву класу, словник класу та список базових класів. Метаклас відповідає за отримання цих трьох аргументів і створення класу. Більшість об’єктно-орієнтованих мов програмування забезпечують реалізацію за замовчуванням. Що робить Python особливим, так це те, що можна створювати власні метакласи. Більшості користувачів цей інструмент ніколи не потрібен, але коли виникає потреба, метакласи можуть надати потужні та елегантні рішення. Вони використовувалися для реєстрації доступу до атрибутів, додавання потокової безпеки, відстеження створення об’єктів, реалізації одиночних елементів і багатьох інших завдань.
Більше інформації можна знайти в Метакласи.
- метод¶
Функція, яка визначена всередині тіла класу. Якщо викликати його як атрибут примірника цього класу, метод отримає об’єкт примірника як свій перший argument (який зазвичай називається
self
). Див. function і nested scope.- порядок вирішення методу¶
Method Resolution Order is the order in which base classes are searched for a member during lookup. See The Python 2.3 Method Resolution Order for details of the algorithm used by the Python interpreter since the 2.3 release.
- модуль¶
Об’єкт, який є організаційною одиницею коду Python. Модулі мають простір імен, що містить довільні об’єкти Python. Модулі завантажуються в Python за допомогою процесу importing.
Дивіться також package.
- модуль спец¶
Простір імен, що містить пов’язану з імпортом інформацію, яка використовується для завантаження модуля. Екземпляр
importlib.machinery.ModuleSpec
.See also Module specs.
- MRO¶
Дивіться method resolution order.
- мінливий¶
Змінні об’єкти можуть змінювати своє значення, але зберігають свій
id()
. Дивіться також immutable.- іменований кортеж¶
Термін «іменований кортеж» застосовується до будь-якого типу або класу, який успадковує кортеж і чиї індексовані елементи також доступні за допомогою іменованих атрибутів. Тип або клас також можуть мати інші особливості.
Кілька вбудованих типів є іменованими кортежами, включаючи значення, що повертаються
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
Some named tuples are built-in types (such as the above examples). Alternatively, a named tuple can be created from a regular class definition that inherits from
tuple
and that defines named fields. Such a class can be written by hand, or it can be created by inheritingtyping.NamedTuple
, or with the factory functioncollections.namedtuple()
. The latter techniques also add some extra methods that may not be found in hand-written or built-in named tuples.- простір імен¶
Місце, де зберігається змінна. Простори імен реалізовані як словники. Існують локальні, глобальні та вбудовані простори імен, а також вкладені простори імен в об’єктах (у методах). Простори імен підтримують модульність, запобігаючи конфліктам імен. Наприклад, функції
builtins.open
іos.open()
відрізняються своїми просторами імен. Простори імен також сприяють читабельності та зручності обслуговування, пояснюючи, який модуль реалізує функцію. Наприклад, написанняrandom.seed()
абоitertools.islice()
дає зрозуміти, що ці функції реалізовані модулямиrandom
іitertools
відповідно.- пакет простору імен¶
PEP 420 package, який служить лише контейнером для підпакетів. Пакунки простору імен можуть не мати фізичного представлення, і, зокрема, не схожі на regular package, оскільки вони не мають файлу
__init__.py
.Дивіться також module.
- вкладена область¶
Можливість посилатися на змінну в охоплюючому визначенні. Наприклад, функція, визначена всередині іншої функції, може посилатися на змінні у зовнішній функції. Зауважте, що вкладені області за замовчуванням працюють лише для довідки, а не для призначення. Локальні змінні читають і записують у внутрішній області видимості. Так само глобальні змінні читають і записують у глобальний простір імен.
nonlocal
дозволяє писати у зовнішні області.- клас нового стилю¶
Old name for the flavor of classes now used for all class objects. In earlier Python versions, only new-style classes could use Python’s newer, versatile features like
__slots__
, descriptors, properties,__getattribute__()
, class methods, and static methods.- об’єкт¶
Будь-які дані зі станом (атрибути або значення) і визначеною поведінкою (методи). Також остаточний базовий клас будь-якого new-style class.
- пакет¶
модуль Python, що може містити підмодулі чи, рекурсивно, підпакети. З технічного боку, пакет є модулем Python з атрибутом
__path__
.Дивіться також regular package і namespace package.
- параметр¶
Іменована сутність у визначенні function (або методу), яка визначає argument (або в деяких випадках аргументи), які функція може прийняти. Є п’ять типів параметрів:
positional-or-keyword: визначає аргумент, який можна передати позиційно або як аргумент ключового слова. Це тип параметра за замовчуванням, наприклад foo і bar у наступному:
def func(foo, bar=None): ...
positional-only: визначає аргумент, який можна надати лише за позицією. Лише позиційні параметри можна визначити, включивши символ
/
у список параметрів визначення функції після них, наприклад posonly1 і posonly2 у наступному:def func(posonly1, posonly2, /, positional_or_keyword): ...
keyword-only: визначає аргумент, який можна надати лише за ключовим словом. Параметри, що містять лише ключове слово, можна визначити, включивши один змінний позиційний параметр або голий
*
у список параметрів визначення функції перед ними, наприклад kw_only1 і kw_only2 у наступному:def func(arg, *, kw_only1, kw_only2): ...
var-positional: вказує, що можна надати довільну послідовність позиційних аргументів (на додаток до будь-яких позиційних аргументів, уже прийнятих іншими параметрами). Такий параметр можна визначити, додавши перед назвою параметра
*
, наприклад args у наступному:def func(*args, **kwargs): ...
var-keyword: вказує, що можна надати довільну кількість аргументів ключових слів (на додаток до будь-яких аргументів ключових слів, які вже прийняті іншими параметрами). Такий параметр можна визначити, додавши перед назвою параметра
**
, наприклад kwargs у прикладі вище.
Параметри можуть вказувати як необов’язкові, так і обов’язкові аргументи, а також значення за умовчанням для деяких необов’язкових аргументів.
Дивіться також argument глосарій, питання FAQ про різницю між аргументами та параметрами,
inspect.Parameter
клас, Визначення функцій розділ та PEP 362.- запис шляху¶
Єдине розташування на import path, до якого path based finder звертається, щоб знайти модулі для імпорту.
- шукач запису шляху¶
finder, що повертається викликом на
sys.path_hooks
(тобто path entry hook), який знає, як знаходити модулі за допомогою path entry.Перегляньте
importlib.abc.PathEntryFinder
методи, які реалізують засоби пошуку запису шляху.- гачок входу шляху¶
A callable on the
sys.path_hooks
list which returns a path entry finder if it knows how to find modules on a specific path entry.- пошук на основі шляху¶
Один із стандартних мета-шляхів пошуку, який шукає import path для модулів.
- шляхоподібний об’єкт¶
Об’єкт, що представляє шлях до файлової системи. Шляховий об’єкт – це або
str
, абоbytes
об’єкт, що представляє шлях, або об’єкт, що реалізує протоколos.PathLike
. Об’єкт, який підтримує протоколos.PathLike
, можна перетворити на шлях файлової системиstr
абоbytes
шляхом виклику функціїos.fspath()
;os.fsdecode()
іos.fsencode()
можна використовувати, щоб гарантувати результатstr
абоbytes
відповідно. Представлений PEP 519.- PEP¶
Пропозиція вдосконалення Python. PEP — це проектний документ, який надає інформацію спільноті Python або описує нову функцію для Python або його процеси чи середовище. Публічні діячі повинні надавати стислу технічну специфікацію та обґрунтування запропонованих функцій.
PEP мають бути основними механізмами для пропонування основних нових функцій, для збору інформації спільноти щодо проблеми та для документування проектних рішень, які увійшли в Python. Автор PEP відповідає за формування консенсусу в спільноті та документування особливих думок.
Дивіться PEP 1.
- частина¶
Набір файлів в одному каталозі (можливо, збережених у файлі zip), які входять до пакету простору імен, як визначено в PEP 420.
- позиційний аргумент¶
Дивіться argument.
- тимчасовий API¶
Попередній API — це той, який був навмисно виключений із гарантій зворотної сумісності стандартної бібліотеки. Хоча суттєвих змін у таких інтерфейсах не очікується, доки вони позначені як тимчасові, зворотні несумісні зміни (аж до видалення інтерфейсу включно) можуть відбутися, якщо розробники ядра вважають це за потрібне. Такі зміни не будуть внесені безоплатно — вони відбудуться лише за умови виявлення серйозних фундаментальних недоліків, які були пропущені до включення API.
Навіть для тимчасових API зворотні несумісні зміни розглядаються як «вирішення останньої інстанції» — все одно будуть зроблені всі спроби знайти зворотно сумісне вирішення будь-яких виявлених проблем.
Цей процес дозволяє стандартній бібліотеці продовжувати розвиватися з часом, не блокуючи проблемні помилки проектування протягом тривалих періодів часу. Дивіться PEP 411 для більш детальної інформації.
- тимчасовий пакет¶
Перегляньте provisional API.
- Python 3000¶
Псевдонім для рядка випусків Python 3.x (придуманий давно, коли випуск версії 3 був чимось у віддаленому майбутньому). Це також скорочено «Py3k».
- Pythonic¶
Ідея або фрагмент коду, який точно відповідає найпоширенішим ідіомам мови Python, а не реалізує код за допомогою концепцій, спільних для інших мов. Наприклад, поширена ідіома в Python полягає в тому, щоб перебирати всі елементи ітерованого за допомогою оператора
for
. Багато інших мов не мають такого типу конструкції, тому люди, які не знайомі з Python, іноді замість цього використовують числовий лічильник:for i in range(len(food)): print(food[i])
На відміну від очищувача, метод Pythonic:
for piece in food: print(piece)
- кваліфіковане ім’я¶
Назва з крапками, що вказує «шлях» від глобальної області видимості модуля до класу, функції або методу, визначеного в цьому модулі, як визначено в 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'
- кількість посилань¶
The number of references to an object. When the reference count of an object drops to zero, it is deallocated. Some objects are «immortal» and have reference counts that are never modified, and therefore the objects are never deallocated. Reference counting is generally not visible to Python code, but it is a key element of the CPython implementation. Programmers can call the
sys.getrefcount()
function to return the reference count for a particular object.- звичайний пакет¶
Традиційний package, як-от каталог, що містить файл
__init__.py
.Дивіться також namespace package.
- __slots__¶
Оголошення всередині класу, яке економить пам’ять шляхом попереднього оголошення місця для атрибутів екземпляра та видалення словників екземплярів. Незважаючи на те, що ця техніка популярна, її дещо складно застосувати, і її найкраще використовувати для рідкісних випадків, коли в програмі, критичній до пам’яті, є велика кількість екземплярів.
- послідовність¶
An iterable which supports efficient element access using integer indices via the
__getitem__()
special method and defines a__len__()
method that returns the length of the sequence. Some built-in sequence types arelist
,str
,tuple
, andbytes
. Note thatdict
also supports__getitem__()
and__len__()
, but is considered a mapping rather than a sequence because the lookups use arbitrary hashable keys rather than integers.The
collections.abc.Sequence
abstract base class defines a much richer interface that goes beyond just__getitem__()
and__len__()
, addingcount()
,index()
,__contains__()
, and__reversed__()
. Types that implement this expanded interface can be registered explicitly usingregister()
. For more documentation on sequence methods generally, see Common Sequence Operations.- встановити розуміння¶
Компактний спосіб обробки всіх або частини елементів у ітерації та повернення набору з результатами.
results = {c for c in 'abracadabra' if c not in 'abc'}
генерує набір рядків{'r', 'd'}
. Дивіться Відображення списків, наборів і словників.- єдина відправка¶
Форма відправки generic function, де реалізація вибирається на основі типу одного аргументу.
- шматочок¶
Об’єкт, який зазвичай містить частину sequence. Зріз створюється з використанням нижнього індексу
[]
з двокрапками між числами, якщо вказано кілька, наприклад,variable_name[1:3:5]
. Нотація в дужках (підрядковому) використовує внутрішньо об’єктиslice
.- soft deprecated¶
A soft deprecated API should not be used in new code, but it is safe for already existing code to use it. The API remains documented and tested, but will not be enhanced further.
Soft deprecation, unlike normal deprecation, does not plan on removing the API and will not emit warnings.
- спеціальний метод¶
Метод, який неявно викликається Python для виконання певної операції над типом, наприклад додавання. Такі методи мають назви, що починаються і закінчуються подвійним підкресленням. Спеціальні методи описані в Назви спеціальних методів.
- заява¶
Оператор є частиною набору («блоку» коду). Інструкція є або expression, або однією з кількох конструкцій із ключовим словом, таким як
if
,while
абоfor
.- static type checker¶
An external tool that reads Python code and analyzes it, looking for issues such as incorrect types. See also type hints and the
typing
module.- сильна посилання¶
In Python’s C API, a strong reference is a reference to an object which is owned by the code holding the reference. The strong reference is taken by calling
Py_INCREF()
when the reference is created and released withPy_DECREF()
when the reference is deleted.Функцію
Py_NewRef()
можна використовувати для створення сильного посилання на об’єкт. Зазвичай функціюPy_DECREF()
потрібно викликати для сильного посилання перед виходом із області сильного посилання, щоб уникнути витоку одного посилання.Дивіться також borrowed reference.
- кодування тексту¶
Рядок у Python — це послідовність кодових точок Unicode (у діапазоні
U+0000
–U+10FFFF
). Щоб зберегти або передати рядок, його потрібно серіалізувати як послідовність байтів.Серіалізація рядка в послідовність байтів відома як «кодування», а відтворення рядка з послідовності байтів відоме як «декодування».
Існує безліч різних кодеків серіалізації тексту, які спільно називаються «текстовими кодуваннями».
- текстовий файл¶
Об’єкт file object, здатний читати та записувати об’єкти
str
. Часто текстовий файл насправді отримує доступ до байт-орієнтованого потоку даних і автоматично обробляє text encoding. Прикладами текстових файлів є файли, відкриті в текстовому режимі ('r'
або'w'
),sys.stdin
,sys.stdout
, а також екземпляри:io.StringIO
.Дивіться також binary file щодо файлового об’єкта, здатного читати та записувати байтоподібні об’єкти.
- рядок із потрійними лапками¶
Рядок, обмежений трьома лапками (») або апострофом („). Хоча вони не надають жодної функції, недоступної для рядків із одинарними лапками, вони корисні з кількох причин. Вони дозволяють ви можете включити неекрановані одинарні та подвійні лапки в рядок, і вони можуть охоплювати кілька рядків без використання символу продовження, що робить їх особливо корисними під час написання рядків документів.
- тип¶
Тип об’єкта Python визначає, що це за об’єкт; кожен об’єкт має тип. Тип об’єкта доступний як атрибут
__class__
, або може бути отриманий за допомогоюtype(obj)
.- псевдонім типу¶
Синонім типу, створений шляхом присвоєння типу ідентифікатору.
Псевдоніми типів корисні для спрощення підказок типу. Наприклад:
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
- підказка типу¶
annotation, яка визначає очікуваний тип для змінної, атрибута класу або параметра функції чи значення, що повертається.
Підказки типу є необов’язковими і не вимагаються Python, але вони корисні для програм для статичної перевірки типів. Вони також можуть допомогти IDE з завершенням коду та рефакторингом.
Доступ до підказок типу глобальних змінних, атрибутів класу та функцій, але не локальних змінних, можна отримати за допомогою
typing.get_type_hints()
.- універсальні символи нового рядка¶
Спосіб інтерпретації текстових потоків, у якому все наступне розпізнається як завершення рядка: угода Unix про кінець рядка
'\n'
, угода Windows'\r\n'
, і стару конвенцію Macintosh'\r'
. Перегляньте PEP 278 і PEP 3116, а такожbytes.splitlines()
для додаткового використання.- анотація змінної¶
annotation змінної або атрибута класу.
При анотуванні змінної або атрибута класу призначення є необов’язковим:
class C: field: 'annotation'
Анотації змінних зазвичай використовуються для підказок типу: наприклад, очікується, що ця змінна прийматиме значення
int
:count: int = 0
Синтаксис анотації змінної пояснюється в розділі Анотовані заяви про призначення.
Перегляньте function annotation, PEP 484 та PEP 526, які описують цю функціональність. Також перегляньте Рекомендації щодо анотацій, щоб дізнатися про найкращі практики роботи з анотаціями.
- віртуальне середовище¶
Спільно ізольоване середовище виконання, яке дозволяє користувачам і програмам Python встановлювати та оновлювати дистрибутивні пакети Python, не втручаючись у поведінку інших програм Python, що працюють у тій же системі.
Дивіться також
venv
.- віртуальна машина¶
Комп’ютер, повністю визначений програмним забезпеченням. Віртуальна машина Python виконує bytecode, виданий компілятором байт-коду.
- Дзен Python¶
Перелік принципів дизайну та філософії Python, які допоможуть зрозуміти та використовувати мову. Перелік можна знайти, ввівши «
import this
» в інтерактивному рядку.