Метакласс - это класс, используемый для создания классов. Думайте об этом так: все объекты имеют класс, класс также является объектом, поэтому имеет смысл, что у класса может быть класс.
http://www.ibm.com/developerworks/linux/library/l-pymeta.html
Чтобы понять, что это делает, вы можете взглянуть на несколько моментов в коде.
_members_ = {'T_UNDEF':0, 'T_NAME':1, 'T_NUMBER':2, 'T_STRING':3, 'T_OPERATOR':4, 'T_VARIABLE':5, 'T_FUNCTION':6}
globals()[key] = value
Здесь он берет все определенные ключи в вашем словаре: "T_UNDEF" "T_NUMBER" и делает их доступными в вашем глобальном словаре.
def __init__(self, value):
for k,v in self._members_.items():
if v == value:
self.name = k
break
Всякий раз, когда вы создаете экземпляр вашего перечисления, он проверяет, есть ли «значение» в вашем списке допустимых имен перечисления, когда вы инициализируете класс. Когда значение найдено, оно устанавливает имя строки в self.name.
c_uint.__init__(self, value)
Это фактическая строка, которая устанавливает "значение ctypes" в действительное целое число без знака.