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.