是否可以创建一个实例为类的类?
起初这似乎是可能的,但我想知道在没有任何外部干扰的情况下这是否真的可行。 例如:
NewClass = ClassClass(someArgs)
instance = NewClass(someOtherArgs)
这可能吗?如果是这样,它在结构上将如何运作?这还有用吗?
请您参考如下方法:
如果检查 1 的类型,您会得到 type(1) == int。如果您检查 int 的类型,您会得到 type(int) == type。
实例为类的类称为元类,在 Python 中,您可以通过继承 type 来创建元类。
class ClassClass(type):
pass
技术上 collections.namedtuple 是一个元类,但它实际上是 cheating .
有一个很棒的PyCon talk by David Beazly about metaprogramming in Python .它很长,但非常有趣。他在 27 分钟左右开始谈论元类。
