美文网首页
Python(metaclass)

Python(metaclass)

作者: JetLu | 来源:发表于2016-09-13 01:04 被阅读26次

示例代码


class A(type):
    @classmethod
    def __prepare__(cls, name, bases, **kwds):
        # 返回一个字典作为__new__里的namespace
        return {
            '__init__': lambda self, i: print(i)
        }

    def __new__(cls, name, bases, namespace, **kwds):
        # namespace包含了类的属性和方法
        # 此时修改namespace依旧会影响类的结构
        return type.__new__(cls, name, bases, namespace)

    def __init__(self, name, bases, namespace, **kwds):
        # 此时修改namespace将不会影响类的结构
        # 可以通过self来修改
        self.echo = lambda self, i: print(i)

class B(metaclass=A):
    pass

b = B('hello')
b.echo('world')

参考


相关文章

  • 面试常考(python)

    Python语言特性 1.Python的函数参数传递 2.元类 metaclass metaclass 允许创建类...

  • 一文搞懂什么是Python的metaclass

    Python 有很多黑魔法,为了不分你的心,今天只讲 metaclass。对于 metaclass 这种特性,有两...

  • python metaclass

    1 类亦为对象 一般情况下,我们称Person为类(class),通过Person(48)实例化的person为对...

  • Python(metaclass)

    示例代码 参考 Customizing class creation Basic customization

  • python:metaclass

    metaclass翻译过来应该是元类的意思。python中一切皆是对象,连类也是对象 而类是元类的实例,默认的cl...

  • python metaclass ..

    目录 要点回顾第一:everything is object第二:metaclass可以定制类的创建第三:关于me...

  • interview_python

    Python语言特性1 Python的函数参数传递2 Python中的元类(metaclass)3 @static...

  • metaclass

    深刻理解Python中的元类(metaclass) - 文章 - 伯乐在线

  • Python Metaclass 初探

    先以一个大牛的一段关于Python Metapgramming的著名的话来做开头: Metaclasses are...

  • Python MetaClass参考

    一:类也是对象 类就是一组用来描述如何生成一个对象的代码。 类也是一个对象,只要你使用关键字 class,pyth...

网友评论

      本文标题:Python(metaclass)

      本文链接:https://www.haomeiwen.com/subject/mphmettx.html