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