Ответ 1
Это означает конец только позиционных параметров, параметров, которые вы не можете использовать в качестве параметров ключевых слов. Такие параметры могут быть указаны только в C API.
Это означает, что key
аргумент __contains__
может быть передан только по позиции (range(5).__contains__(3)
), а не как range(5).__contains__(key=3)
аргумент (range(5).__contains__(key=3)
), что вы можете сделать с помощью позиционные аргументы в функциях чистого Python.
Также см. Документацию Argument Clinic:
Чтобы пометить все параметры как только позиционные в Argument Clinic, добавьте
/
на отдельной строке после последнего параметра, с таким же отступом, как и строки параметров.
и (очень недавнее дополнение к) Python FAQ:
Косая черта в списке аргументов функции означает, что предшествующие ей параметры являются только позиционными. Только позиционные параметры - это те, которые не имеют внешнего имени. При вызове функции, которая принимает только позиционные параметры, аргументы сопоставляются с параметрами, основываясь исключительно на их позиции.
Синтаксис также был определен для возможного будущего включения в Python, см. PEP 457 - Синтаксис для позиционных параметров.
Этот PEP недавно был восстановлен и принят для включения в Python. Поскольку Python 3.8 все еще находится в альфа-фазе, он может стать реальностью в этой версии или в 3.9 в зависимости от того, насколько быстро будет завершена эталонная реализация.
Только позиционные параметры могут привести к более чистым и понятным API, сделать реализации на чистом Python других модулей C-only более согласованными и более простыми в обслуживании, а поскольку параметры только позиционирования требуют очень небольшой обработки, они приводят к более быстрому коду Python.