metaclass

参考:

两种方法:

  1. six.with_metaclass

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    
    import six
    
    
    class MyMeta:
        def __new__(self, cls, name, bases, attrs):
            pass
    
    
    class MyBase:
        pass
    
    
    class MyClass(six.with_metaclass(MyMeta, MyBase)):
        pass
    • 接口说明

      • six.with_metaclass(MetaClass, *otherBases)
  2. six.add_metaclass

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    
    import six
    
    
    class MyMeta:
        def __new__(self, cls, name, bases, attrs):
            pass
    
    
    class MyBase:
        pass
    
    @six.add_metaclass(MyMeta)
    class MyClass(myBase):
        pass

字符串类型 str

six.text_type