2011-12-03 4 views
3
내가 파이썬의 ast 모듈을 통해 넘어 가고있어 및 조각 정의 알아낼 수 없습니다

:파이썬의 AST에서 ExtSlice 노드가 나타내는 구문은 무엇입니까?

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

는 지금까지 내가 Slice 평소 [start:end:step] 표기법, Ellipsis[...] 것을 알고를 Index[index]이지만, 어떤 표기법은 ExtSlice입니까?

답변

4

확장 슬라이스는 슬라이스 특정 기능을 사용하는 여러 부분이있는 슬라이스입니다.

슬라이스 특정 기능은 ... (리터럴 줄임표) 또는 : (테스트 구분 기호)와 비슷합니다.

또는 o[1,2:3]과 같은 표현에 대해 ExtSlice이 포함 된 예입니다.

>>> 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> 
>>> 
+0

감사 : 여기

이을 보여주는 몇 가지 예입니다! 이 설명서는이 설명을 올바르게 전달하지 못합니다. –