精慕HU
其他人已经解释了元类如何工作以及它们如何适合Python类型系统。这是他们可以使用的一个例子。在我编写的测试框架中,我想跟踪定义类的顺序,以便稍后我可以按此顺序实例化它们。我发现使用元类这样做最容易。class MyMeta(type):
counter = 0
def __init__(cls, name, bases, dic):
type.__init__(cls, name, bases, dic)
cls._order = MyMeta.counter MyMeta.counter += 1class MyType(object): # Python 2
__metaclass__ = MyMetaclass MyType(metaclass=MyMeta): # Python 3
pass凡是是的子类,MyType然后得到一个类属性_order,它记录在其中的类中定义的顺序。