Hello! > After the loop has finished, the global variable TmpClass will be bound to > whatever class was created last, and the variable class_base will be bound > to that the base class of that same TmpClass. Therefore only this last class > is guaranteed to work as expected.
Great, now it workes! _module_name = sys.modules[__name__] def _tag_class_factory(name, base): class T(base): def __init__(self, **props): super(T, self).__init__(name=name.lower(), **props) setattr(_module_name, name, T) class_dic = {} class_dic['Br'] = _Tag class_dic['Hr'] = _Tag class_dic['Html'] = _ContainerTag class_dic['Table'] = _ContainerTag class_dic['Td'] = _ContainerTag class_dic['Tr'] = _ContainerTag for name, base in class_dic.items(): _tag_class_factory(name, base) print Table(contents=[Tr(contents=[Br()])]) gives: <table><tr><br/></tr></table> Thanks, AXEL. -- http://mail.python.org/mailman/listinfo/python-list