gpt4 book ai didi

python - Python 的 AST 中的 ExtSlice 节点表示什么语法?

转载 作者:太空宇宙 更新时间:2023-11-03 15:25:08 25 4
gpt4 key购买 nike

我正在浏览 Python 的 ast 模块,无法弄清楚切片定义:

slice = Ellipsis | Slice(expr? lower, expr? upper, expr? step) 
| ExtSlice(slice* dims)
| Index(expr value)

到目前为止,我知道Ellipsis[...]Slice是通常的[start:end: step]表示法,Index[index],但是ExtSlice是哪种表示法呢?

最佳答案

扩展切片是具有多个部分的切片,它使用一些特定于切片的特征。

切片特定的功能类似于 ...(文字省略号)或 :(测试分隔符)。

所以,一个例子,其中 ExtSlice 涉及到像 o[...:None]o[1,2:3]< 这样的表达式.

这里有一些例子可以证明这一点:

>>> compile('o[x]', '<string>', 'exec', PyCF_ONLY_AST).body[0].value.slice
<_ast.Index object at 0xb72a9e6c>
>>> compile('o[x,y]', '<string>', 'exec', PyCF_ONLY_AST).body[0].value.slice
<_ast.Index object at 0xb72a9dac>
>>> compile('o[x:y]', '<string>', 'exec', PyCF_ONLY_AST).body[0].value.slice
<_ast.Slice object at 0xb72a9dcc>
>>> compile('o[x:y,z]', '<string>', 'exec', PyCF_ONLY_AST).body[0].value.slice
<_ast.ExtSlice object at 0xb72a9f0c>
>>>

关于python - Python 的 AST 中的 ExtSlice 节点表示什么语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8370132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com