Python类型系统 - 对象与类型

时间:2012-11-23 03:46:18

标签: python class types type-systems

我是Python新手。我熟悉Java,C / C ++和OCaml。由于我在大学学习的编程语言课程,我理解Lambda微积分和初等类型理论。

有了这个背景,我试着读这个 - http://www.cafepy.com/article/python_types_and_objects/python_types_and_objects.html

在某个地方,他提到了这个:

  • (类型'对象')是(类型'type')
  • 的实例
  • (类型'object')是无对象的子类。
  • (类型'type')是它自己的一个实例。
  • (type'type')是(类型'object')
  • 的子类

我无法将这个可怜的大脑包裹起来:

  • (类型'对象')是(类型'type')
  • 的实例
  • (类型'type')是(类型'object')
  • 的子类

这里发生了什么哔哔声?我想听到的是关于这里到底发生了什么的极其深刻的原因,以及为什么事情就是这样。没有浅薄的理由或类比请。

2 个答案:

答案 0 :(得分:4)

它专门谈论对象type。对于type,所有类型都从<type 'type'>继承。

我相信另一个声明只是指出<type 'type'>object;我从进一步向下看的一个例子:

t = list.__class__ # <type 'type'>
t.__bases__ # (<type 'object'>,)

答案 1 :(得分:0)

因为类型的概念与类相同,所以您可以使用常规的面向对象技术和类语法对类进行子类化以对其进行自定义。

因为类实际上是类类的实例,所以从类型的自定义子类创建类允许实现自定义类的类。

在新式课程中:

  • type是一个生成用户定义类的类。
  • 元类是类类的子类。
  • 类对象是类类的实例,或者是其子类。
  • 实例对象是从类生成的。
相关问题