以此示例对象为例:
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__
从哪里获取列表中的项目?
答案 0 :(得分:5)
在典型的Python发行版(称为CPython)中,列表等内置类型是用C语言实现的,而不是用Python实现的。毕竟,它不能一直是Python!这意味着内部工作被隐藏,没有任何属性可以揭示它们。
在类似的说明中,您会发现inspect.getsource([].__getitem__)
不起作用。