我刚开始学习Python。我发现类型系统有点难以理解。我有很多问题,但是主要的问题是:documentation中说明:
“在Python程序中,所有数据都由对象表示...每个对象都有一个标识符、一个类型和一个值。”
没问题。但除此之外,它没有真正描述“对象”是什么。例如,文档甚至没有涵盖这些“对象”支持点运算符——从我的角度来看,它们可能是一些内存数据结构,用户只能通过
如果我在一个类实例“x”上执行以下操作:
我获取其类的名称,这点我理解。文档描述了“类实例”和“类”类型对象的__class__和__name__属性。如果我执行[ ].__class__.__name__,我会得到"list"。同样,int(1).__class__.__name__给出"int"。我不确定底层发生了什么,我想要澄清。所以我的问题是:
“在Python程序中,所有数据都由对象表示...每个对象都有一个标识符、一个类型和一个值。”
没问题。但除此之外,它没有真正描述“对象”是什么。例如,文档甚至没有涵盖这些“对象”支持点运算符——从我的角度来看,它们可能是一些内存数据结构,用户只能通过
id()
、type()
等来访问。然而,我了解到有一些潜在的元对象接口类似于文档中描述的class instance类型对象。以一个例子来工作:如果我在一个类实例“x”上执行以下操作:
x.__class__.__name__
我获取其类的名称,这点我理解。文档描述了“类实例”和“类”类型对象的__class__和__name__属性。如果我执行[ ].__class__.__name__,我会得到"list"。同样,int(1).__class__.__name__给出"int"。我不确定底层发生了什么,我想要澄清。所以我的问题是:
- 一个“类型”类型的“对象”和“类实例”类型对象之间的关系是什么?
- 我能否假定内置类型对象的元API与“类实例”类型对象的相同?
- 如果是这样,这个接口是什么,它在哪里记录?
- 一般来说,与内置类型对应的“对象”是什么,它们是如何实现的?