import types
class Meta(type):
registro = {}
def __init__(cls, name, bases, dictionary):
'''Inicializa o objeto classe'''
assert hasattr(cls, 'funcaoImportante')
assert isinstance(cls.funcaoImportante, types.UnboundMethodType)
cls.registro[name] = cls
if __name__ == '__main__':
__metaclass__ = Meta
class X:
def funcaoImportante(self):
pass
class Y:
def funcaoImportante(self):
pass
print 'Classees registradas:', Meta.registro
class Z:
def funcaoQuaseImportante(self):
pass
syntax highlighted by Code2HTML, v. 0.9.1