存储python列表中的元素在哪里?

时间:2018-04-18 22:14:08

标签: python python-3.x list

以此示例对象为例:

class myObj:

    def __init__(self):
        self.a = 1
        self.b = 2
        self.c = 3
a = myObj()

我可以使用vars(a),我会获得{'a': 1, 'b': 2, 'c': 3}dir(a)来获取属性列表以及a中的所有函数。我可以看到a中存储的所有内容。

但是,列表中有一个不同的故事。 var([])抛出错误,dir([1, 2, 3])仅列出列表中实现的函数。 __getitem__从哪里获取列表中的项目?

1 个答案:

答案 0 :(得分:5)

在典型的Python发行版(称为CPython)中,列表等内置类型是用C语言实现的,而不是用Python实现的。毕竟,它不能一直是Python!这意味着内部工作被隐藏,没有任何属性可以揭示它们。

在类似的说明中,您会发现inspect.getsource([].__getitem__)不起作用。