python

meta

class meta(type):
  def __new__(self, name, bases, dic):
    """ meta をメタクラスとして持つ name クラスを生成する(定義された)際に呼ばれる
    self は meta
    name にはクラスの名前, bases はクラスの基底クラス, dic はクラス変数辞書
    生成されたクラスが返される
    """
    return type.__new__(self, name, bases, dic)

  def __init__(cls, name, bases, dic):
    """ meta をメタクラスとして持つ name クラスが生成された際に呼ばれる
    cls は クラス
    name にはクラスの名前, bases はクラスの基底クラス, dic はクラス変数辞書
    """
    pass

class test(object):
   __metaclass__ = meta

   pass