导语:
本文主要介绍了关于Python中的元类是什么?如何快速掌握?的相关知识,希望可以帮到处于编程学习途中的小伙伴
作为一个的程序单元,学习编程的人应该都需要掌握。今天小编为大家带来元类的讲解。
Python2创建类的时候,可以添加一个__metaclass__属性:
<p><span>class Foo(object):<br/> __metaclass__ = something...<br/> [...]<br/></span></p>
如果这样做,Python 将使用元类来创建类 Foo。 Python 将在类定义中查找 __metaclass__。如果找到它,Python 将使用它来创建对象类 Foo。如果没有找到,Python 将使用类型来创建类。
在Python3中语法改变了一下:
<p><span>class Simple1(object, metaclass=something...):<br/> [...]<br/></span></p>
本质上是一样的。拿一个元类例子分享一下:
<p><span>class HelloMeta(type):<br/> def __new__(cls, name, bases, attrs):<br/> def __init__(cls, func):<br/> cls.func = func<br/> def hello(cls):<br/> print 'hello world'<br/> t = type.__new__(cls, name, bases, attrs)<br/> t.__init__ = __init__<br/> t.hello = hello<br/> return t<br/> class New_Hello(object):<br/> __metaclass__ = HelloMeta<br/></span></p>
New_Hello 初始化需要添加一个参数,并且包含一个名为 hello 的方法:
<p><span>In : h = New_Hello(lambda x: x)<br/>In : h.func(10), h.hello()<br/>hello world<br/>Out: (10, None)<br/></span></p>
PS: 这个例子只能运行于Python2。
以上就是Python中元类的详解。
更多Python学习推荐:
。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python 2.6 pip 安装失败12/28
- ♥ 如何自定义python迭代器的类09/26
- ♥ 如何在python中安装pip08/17
- ♥ 如何在python中调用类中的方法09/26
- ♥ 如何使用python定义的类11/21
- ♥ python字典的元素访问09/29
内容反馈