Pregunta

¿Qué tipos de objetos se encuentran en el dominio de " suscriptable " ;?

¿Fue útil?

Solución

Básicamente significa que el objeto implementa el método __getitem __ () . En otras palabras, describe objetos que son "contenedores", lo que significa que contienen otros objetos. Esto incluye listas, tuplas y diccionarios.

Otros consejos

En la parte superior de mi cabeza, las siguientes son las únicas incorporaciones que son suscriptibles:

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

Pero la respuesta de mipadi es correcta: cualquier clase que implemente __getitem__ es suscriptible

Un objeto de secuencias de comandos es un objeto que registra las operaciones realizadas y puede almacenarlas como un " script " el cual puede ser reproducido.

Por ejemplo, vea: Marco de scripting de aplicaciones

Ahora, si Alistair no supiera lo que pidió y realmente quiso decir "suscriptable" objetos (como los editan otros), luego (como mipadi también respondió) este es el correcto:

Un objeto suscriptible es cualquier objeto que implementa el método especial __getitem__ (listas de reflexión, diccionarios).

El significado del subíndice en computación es: "Un símbolo (escrito teóricamente como un subíndice, pero en la práctica generalmente no) utilizado en un programa, solo o con otros, para especificar uno de los elementos de una matriz".

Ahora, en el ejemplo simple dado por @ user2194711 podemos ver que el elemento adjunto no puede ser un parte de la lista debido a dos razones: -

1) Realmente no estamos llamando al método adjunto; porque necesita () para llamarlo.

2) El error indica que la función o el método no son subscriptibles; significa que no se pueden indexar como una lista o secuencia.

Ahora vea esto: -

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

Eso significa que no hay subíndices o elementos de la función como ocurre en secuencias; y no podemos acceder a ellos como lo hacemos, con la ayuda de [] .

También; como mipadi dijo en su respuesta; Básicamente significa que el objeto implementa el método __getitem __ () . (si es subscriptable). Así se produjo el error:

arr.append["HI"]
  

TypeError: el objeto 'builtin_function_or_method' no es suscriptible

Tuve este mismo problema. Yo estaba haciendo

arr = []
arr.append["HI"]

Por lo tanto, usar [ estaba causando un error. Debería ser arr.append("HI")

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top