【发布时间】:2014-06-05 12:02:10
【问题描述】:
我刚刚开始学习 Python。我发现类型系统有点难以理解。我有很多问题,但主要是长话短说; documentation 声明:
"Python 程序中的所有数据都由对象表示...每个 对象具有标识、类型和值。”
没问题。但除此之外,它并没有真正描述什么是“对象”。例如,文档甚至没有涵盖这些“对象”支持点运算符——从我的 PoV 来看,它们可能是内存中的一些数据结构,除了id()、type() 等之外没有向用户公开。但是我认为有一些底层元对象接口类似于文档中为class instance 类型对象描述的接口。从一个例子开始:
如果我在类实例“x”上这样做:
x.__class__.__name__
我得到了它的类名。我明白那个。该文档描述了 class instances 和 class 类型对象的 __class__ 和 __name__ 属性。如果我这样做[].__class__.__name__ 我会得到“列表”。同样int(1).__class__.__name__ 给出“int”。它对我来说模棱两可到底发生了什么,我想澄清一下。所以我的问题是:
- type 类型的“对象”和“类实例”类型的对象之间有什么关系?
- 我可以假设内置类型对象的 ~meta API 与“类实例”类型对象的 API 相同吗?
- 如果有,这个接口是什么?它记录在哪里?
- 一般来说,对应于内置类型的是“对象”,它们是如何实现的?
【问题讨论】:
-
这里很好地描述为先有鸡还是先有蛋的情况:cafepy.com/article/python_types_and_objects/… 您的许多疑问应该通过查看上面 URL 的内容来解决
-
@GodMan 链接坏了
-
@vishnuprasanth,似乎无法访问该域。 ¯_(ツ)_/¯
标签: python