Python:类实例是类

Mut*_*toe 1 python class python-3.x

是否可以创建一个实例是类的类?

起初似乎有可能,但我想知道在没有任何外部干扰的情况下这是否真的可行.例如:

NewClass = ClassClass(someArgs)
instance = NewClass(someOtherArgs)
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果是这样,它在结构上会如何运作?这甚至有用吗?

ten*_*bey 6

如果你检查1你得到的类型type(1) == int.如果你检查int你得到的类型type(int) == type.

其实例是类的类称为元类,在Python中,您可以通过子类创建元类type.

class ClassClass(type):
    pass
Run Code Online (Sandbox Code Playgroud)

技术上collections.namedtuple是一个元类,但它实际上是作弊.

大卫·比兹利(David Beazly)就Python中的元编程进行了很棒的PyCon演讲.这很长,但非常有趣.他开始谈论27分钟左右的元类.