Pergunta

Quais tipos de objetos se enquadram no domínio de “assinatáveis”?

Foi útil?

Solução

Basicamente significa que o objeto implementa o __getitem__() método. Em outras palavras, descreve objetos que são "contêineres", o que significa que eles contêm outros objetos. Isso inclui listas, tuplas e dicionários.

Outras dicas

No topo da minha cabeça, o seguinte são os únicos embutidos que são subscritos:

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

Mas Resposta de Mipadi está correto - qualquer classe que implementa __getitem__ é subscridente

Um objeto scriptável é um objeto que registra as operações feitas e pode armazená -las como um "script" que pode ser repetido.

Por exemplo, veja: Estrutura de script de aplicativo

Agora, se Alistair não soubesse o que ele pediu e realmente quis dizer objetos "subscritos" (como editado por outros), então (como Mipadi também respondeu), este é o correto:

Um objeto subscridente é qualquer objeto que implemente o __getitem__ Método especial (listas de pensamento, dicionários).

O significado de subscrito em computação é:"um símbolo (idealmente escrito como um subscrito, mas na prática geralmente não) usado em um programa, sozinho ou com outros, para especificar um dos elementos de uma matriz."

Agora, no exemplo simples dado por @usuário2194711 podemos ver que o elemento anexado não pode fazer parte da lista por dois motivos: -

1) Na verdade, não estamos chamando o método anexar;porque precisa () para chamá-lo.

2) O erro indica que a função ou método não pode ser subscrito;significa que eles não são indexáveis ​​como uma lista ou sequência.

Agora veja isto: -

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

Isso significa que não há subscritos ou elementos say em function como se ocorressem em sequências;e não podemos acessá-los como fazemos, com a ajuda de [].

Também;como mipadi disse em sua resposta;Basicamente significa que o objeto implementa o __getitem__() método.(se for subscrito).Assim o erro produziu:

arr.append["HI"]

Erro de tipo:O objeto 'builtin_function_or_method' não é subscrito

Eu tive o mesmo problema. eu estava fazendo

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

Então usando [ estava causando erro. Deveria ser arr.append("HI")

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top