前面的话:这两天终于硬着头皮把python中的元类看完了,理解的不是很深刻,就打算写篇笔记,在回顾一遍吧!~~
一、什么是元类(metaclass)
元类(metaclass)是用来创建类(对象)的可调用对象。这里的可调用对象可以是函数或者类等。但一般情况下,我们使用类作为元类。对于实例对象、类和元类,我们可以使用下面的图来描述。
我们可以使用type
来创建类(对象),事实上,type
就是一个元类。
元类的主要目的是为了控制类的创建行为。
二、元类的使用
先看一个简单的例子,假设有下面的类:
class Foo(object):
name = "foo"
def bar(self):
print("bar")
现在我们想给这个类的方法和属性名称前面加上my_
前缀,即就是把name
变成my_name
。另外,我们还要增加一个echo方法。这里我们通过元类实现。
- 首先,定义一个元类,按照默认习惯,类名以Metaclass结尾。
class PrefixMetaclass