哪些类型的对象属于“可订阅”的域?

有帮助吗?

解决方案

它基本上意味着该对象实现了 __ 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 __ 的类都是可订阅的

可编写脚本的对象是一个对象,它记录对其执行的操作,并且可以将它们存储为“脚本”。可以重播。

例如,请参阅:应用程序脚本框架

现在,如果Alistair不知道他问的是什么,并且真的意思是“可订阅的”对象(由其他人编辑),然后(如mipadi也回答)这是正确的:

可订阅对象是实现 __ getitem __ 特殊方法的任何对象(想想列表,字典)。

计算中下标的含义是: “在一个程序中单独或与他人一起使用的符号(在概念上写成下标但实际上通常不是),用于指定数组的一个元素。”

现在,在 @ user2194711 给出的简单示例中,我们可以看到附加元素不能是列表的一部分原因有两个: -

1)我们并没有真正调用方法追加;因为它需要()来调用它。

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

这意味着 function 中没有下标或说明元素,就像它们出现在序列中一样;在 [] 的帮助下,我们无法像我们一样访问它们。

也;正如 mipadi 在他的回答中所说;它基本上意味着该对象实现了 __ getitem __()方法。 (如果是可订阅的)。 因此产生了错误:

arr.append["HI"]
  

TypeError:'builtin_function_or_method'对象不可订阅

我有同样的问题。我在做什么

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

因此使用 [导致错误。它应该是 arr.append(&quot; HI&quot;)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top