知行编程网知行编程网  2023-01-03 15:00 知行编程网 隐藏边栏  0 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于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学习推荐:




本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享