Python Glossary English

все Python 3astпонятие

ast.Slice

выражения

Узел среза lower:upper:step внутри Subscript; пропущенная граница хранится как None.

Синтаксис

ast.Slice(lower=None, upper=None, step=None)

Slice встречается только в поле slice узла Subscript (или внутри Tuple там же) — отдельно выражения «1:2» в Python нет. Пропуск и явный None различаются: a[:] даёт три None, а a[None:] — lower с Constant(None). Не путать со встроенным slice(): вызов slice(1, 2) — обычный Call, а узел Slice описывает синтаксис с двоеточием.

Примеры

import ast
s = ast.parse('a[::2]', mode='eval').body.slice
print(type(s).__name__, s.lower, s.upper, s.step.value)  # → Slice None None 2
n = ast.parse('a[None:]', mode='eval').body.slice
print(type(n.lower).__name__)  # → Constant

См. также

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