5 ответов:
Это означает, что объект реализует
__getitem__()метод. Другими словами, он описывает объекты, которые являются "контейнерами", то есть они содержат другие объекты. Это включает в себя списки, кортежи и словари.
С верхней части моей головы, следующие являются единственными встроенными, которые являются подписными:
string: "foobar"[3] == "b" tuple: (1,2,3,4)[3] == 4 list: [1,2,3,4][3] == 4 dict: {"a":1, "b":2, "c":3}["c"] == 3но mipadi это правильно - любой класс, реализующий
__getitem__is subscriptable
скриптовый объект-это объект, который записывает операции, выполненные с ним, и он может хранить их как "сценарий", который можно воспроизвести.
например, см.: Application Scripting Framework
теперь, если Алистер не знал, что он спросил, И действительно имел в виду" подписные " объекты (как отредактировано другими), то (как и ответил мипади) это правильный:
объект subscriptable-это любой объект, реализующий
__getitem__специальные метод (думайте списки, словари).
у меня была такая же проблема. Я делал
arr = [] arr.append["HI"]Так что с помощью
[вызывает ошибку. Он должен быть!--2-->
значение индекса в вычислениях является: "символ (условно записывается как Нижний индекс, но на практике обычно нет), используемый в программе, один или с другими, чтобы указать один из элементов массива."
теперь, в простом примере, приведенном @user2194711 мы видим, что добавляющий элемент не может быть частью списка по двум причинам: -
1) мы на самом деле не вызываем метод append; потому что ему нужно
()для вызова оно.2) ошибка указывает на то, что функция или метод не являются индексируемыми; означает, что они не индексируются как список или последовательность.
теперь вижу так:-
>>> var = "myString" >>> def foo(): return 0 ... >>> var[3] 't' >>> foo[3] Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'function' object is not subscriptableэто означает, что в как они происходят в последовательностях; и мы не можем получить к ним доступ, как мы делаем, с помощью
[].и как mipadi сказал в своем ответе; это в основном означает, что объект реализует
__getitem__()метод. (если он является подписным). Таким образом, ошибка:arr.append["HI"]TypeError:' builtin_function_or_method ' объект не является subscriptable
Comments