Синтаксисом является части языка Python , Slicing syntax поддерживает 1 или более ломтиков:
extended_slicing ::= primary "[" slice_list "]"
slice_list ::= slice_item ("," slice_item)* [","]
[...] Если список срез содержит, по меньшей мере, одной запятой, ключ кортеж, содержащий преобразование элементов среза; в противном случае преобразование элемента одиночного среза является ключом.
Numpy использует эту функциональность; все, что вам нужно сделать, это реализовать object.__getitem__()
special method и обработать кортежи slice()
объектов.
Теперь проект Numpy сыграл важную роль в запросе того, что это было возможно; то же самое относится к использованию синтаксисаи объекта Ellipsis
, а также к тем ограничениям, которые существуют на numeric method hooks.
Новый dedicated @
and @=
syntax также был специально запрошен сообществом Numpy, например. Таким образом, по сути, если у вас есть убедительный прецедент и достаточно большое сообщество, использующее этот язык, вы можете предложить новый синтаксис и добавить его к этому языку.
** Любой объект ** Python может поддерживать этот синтаксис, он не уникален для Numpy. Поддержка синтаксиса является частью Python. –
Кстати, что означает ':' означает? – khajvah
@khajvah Символ ':' - это только фрагментная нотация. –