8

我是 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') 是 no object 的子类。
  • (type 'type') 是它自己的一个实例。
  • (type'type') 是 (type'object') 的子类

我无法用我可怜的大脑来解决这个问题:

  • (type 'object') 是 (type 'type') 的一个实例
  • (type 'type') 是 (type 'object') 的子类

这里发生了什么哔哔声?我想听到的是关于这里到底发生了什么以及为什么事情是这样的非常深入的原因。请不要有肤浅的理由或类比。

4

2 回答 2

4

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

我相信另一种说法只是指出这<type 'type'>是一个object; 我从进一步往下看的一个例子:

t = list.__class__ # <type 'type'>
t.__bases__ # (<type 'object'>,)
于 2012-11-23T04:13:58.083 回答
0

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

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

在新式课程中:

  • type 是一个生成用户定义类的类。
  • 元类是类型类的子类。
  • 类对象是类型类或其子类的实例。
  • 实例对象是从一个类生成的。
于 2016-09-13T15:46:50.093 回答