python terminology

title python



En Python, ¿qué significa si un objeto es subíndiceble o no? (5)

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

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

1) Realmente no estamos llamando al método de añadir; porque necesita () llamarlo.

2) El error indica que la función o el método no son subscriptibles; significa que no son indexables 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 dicen elementos en function como ocurren en secuencias; y no podemos acceder a ellos como nosotros, 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 un subíndice

¿Qué tipos de objetos caen en el dominio de "subíndice"?


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

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 implementa __getitem__ es suscriptible


Tuve el mismo problema. estaba haciendo

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

Así que usar [ estaba causando error. Debe ser arr.append("HI")


Un objeto programable es un objeto que registra las operaciones que se le realizan y puede almacenarlos como un "script" que se puede reproducir.

Por ejemplo, vea: Application Scripting Framework

Ahora, si Alistair no sabía lo que pidió y realmente quiso decir los objetos "subscriptibles" (como lo editaron otros), entonces (como mipadi también respondió) este es el correcto:

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


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.