все 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Сообщить о неточности