Теория, часть 1. Метаклассы
Все начинается с объявления класса:
Hightlited/Rawclass A(object):
field = 12
def method(self, param):
return param + self.field
Имеющие опыт программирования на компилируемых языках могут увидеть здесь декларативную конструкцию, но это только обман зрения. В python всего две декларативные конструкции - объявление кодировки файла и импорт синтаксических конструкций "из будущего". Все остальное - исполняемое. Написанное объявление это синтаксический сахар для следующего:
Hightlited/Rawtxt_code = """
field = 12
def method(self, param):
return param + self.field
"""
class_body = {}
compiled_code = compile(txt_code, __file__, "exec")
eval(compiled_code, globals(), class_body)
A = type("A", (object,), class_body)