Python Glossary English

все Python 3operatorфункция

operator.index

арифметика

Возвращает объект, приведённый к целому через протокол __index__() — эквивалент a.__index__(); с версии 3.10 результат всегда точного типа int.

Синтаксис

operator.index(a)

Строже, чем int(): float не принимается вовсе — index(3.0) поднимает TypeError, а не отбрасывает дробную часть. Принимает bool, потому что bool — подкласс int: index(True) даёт 1. Нужна, когда значение будет индексом или границей среза: так ведут себя range и list.__getitem__, и тип NumPy с __index__ проходит без явного преобразования.

Примеры

# Python 3.10+
import operator
print(operator.index(5))                   # → 5
print(operator.index(True))                # → 1
print(type(operator.index(True)))          # → <class 'int'>
print(operator.__index__(-3))              # → -3
print([10, 20, 30][operator.index(True)])  # → 20

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности