Лучший ответ - в комментариях, он был полезен для меня, поэтому я решил показать его в ответе (спасибо sr2222): способ динамически объявлять непереносимость в Python - это встроенная функция type ().Для моего примера:
class A(object) :
def __init__(self, args):
self.a = 'a'
self.args = args
def getattA(self):
return self.a, self.args
class B(object) :
b = 'b'
def __init__(self, args) :
self.b_init = args
def getattB(self):
return self.b
C = type('C', (A,B), dict(c='c'))
instc = C('args')
print 'attributes :', instc.a, instc.args, instc.b, instc.c
print 'methodes :', instc.getattA(), instc.getattB()
print instc.b_init
Код возврата:
attributes : a args b c
methodes : ('a', 'args') b
Traceback (most recent call last):
File "D:\Documents and settings\Bureau\merge2.py", line 24, in <module>
print instc.b_init
AttributeError: 'C' object has no attribute 'b_init'
Мои атрибуты inerhite класса C и методы класса A и класса B, и мы добавляем атрибут c.С экземпляром C (instc = C ('args')) init для A - это вызов, но не для B.
Очень полезно для меня, потому что мне нужно добавить некоторые атрибуты иМетоды (одинаковые) на разные классы.