to: @wozozo metaclass1.py # coding:utf-8 class MyMetaclass(type): """ メタクラス """ def __new__(cls, name, bases, attrs): # fieldsという名前のフィールドからメソッドを生成する def make_method(v): # クロージャ return lambda self: "%s" % v for k, v in attrs.get('fields', {}).iteritems(): attrs[k] = make_method(v) return type.__new__(cls, name, bases, attrs) class MyBaseClass(object): """ メタクラスを使ったクラス """ __metaclass__ = MyMetaclas