考虑一个简单的类:
class A:
a=98
当我定义类A时,"type"类将创建一个对象,该对象将是我们的类,因为"type"是元类。现在,根据python文档,当我们离开类定义(通过末尾(时,会创建一个类对象,并将该对象绑定到ClassName(在我们的情况下是a(。那么,名称"A"是指两个对象吗?i(由"类型"元类创建的对象,即类本身;ii(类对象?
如果A指的是*class对象*,那么哪个名称指的是"type"元类创建的对象还是类本身
类(对象(和类型在Python 3(您引用了该文档(中是相同的,因此在您的示例中A
是type
创建的类。您可以将A
称为类型或类,但它是同一个对象。
在您链接到的Python 3文档中,我们还阅读了:
每个值都是一个对象,因此都有一个类(也称为其类型(。它被存储为
object.__class__
。
。。。断言这两个术语指的是同一件事。另请参阅该文件中的以下引文:
使用
isinstance()
检查实例的类型:只有当obj.__class__
是int
或从int
派生的某个类时,isinstance(obj, int)
才会是True
。