предположим, что вы хотите динамически добавлять атрибуты класса, такие как эти
classDict = {}
for i in range(2):
classDict["func%s"%(i+1)] = lambda self:"X"
Вы можете сделать это несколькими способами, например, просто добавьте атрибуты после того, как класс был создан, потому что вы можете легко получить доступ к имени класса внутри класса
class Attr2(object):
pass
for n,v in classDict.iteritems():
setattr(Attr2, n, v)
print Attr2().func1(), Attr2().func2()
или лучше просто создайте класс на лету, например
Attr3 = type("Attr3",(), classDict)
print Attr3().func1(), Attr3().func2()
или если вы хотите использовать метакласс, например,
class AttrMeta(type):
def __new__(cls, name, bases, dct):
dct.update(classDict)
return type.__new__(cls, name, bases, dct)
class Attr4(object):
__metaclass__ = AttrMeta
print Attr4().func1(), Attr4().func2()