什么是Python中的元类?

什么是Python中的元类?

什么是元类,我们用它们做什么?



PIPIONE
浏览 1180回答 5
5回答

元芳怎么了

元类的一个用途是自动向实例添加新属性和方法。例如,如果你看一下Django模型,他们的定义看起来有点令人困惑。看起来好像只是定义了类属性:class Person(models.Model):     first_name = models.CharField(max_length=30)     last_name = models.CharField(max_length=30)但是,在运行时,Person对象充满了各种有用的方法。查看源代码,了解一些神奇的元素。

精慕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,它记录在其中的类中定义的顺序。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python