Я хочу добавить некоторые атрибуты и методы в различные классы. Методы и атрибуты, которые я должен добавить, одинаковы, но не класс для их назначения, поэтому я хочу построить класс, который назначает новые методы и атрибуты для класса, указанного в аргументе. Я стараюсь это, но это не работает: (я знаю, что это очень неправильно пытаться присвоить что-то для себя, это просто, чтобы показать то, что я хочу сделать)Python: Как «объединить» два класса
class A:
def __init__(self):
self.a = 'a'
def getatt(self):
return self.a
class B:
def __init__(self, parent) :
self = parent
# This is working :
print self.getatt()
def getattB(self):
return self.getatt()
insta = A()
instb = B(insta)
# This is not working :
print instb.getattB()
Результат:
a
Traceback (most recent call last):
File "D:\Documents and settings\Bureau\merge.py", line 22, in <module>
print instb.getattB()
File "D:\Documents and settings\Bureau\merge.py", line 16, in getattB
return self.getatt()
AttributeError: B instance has no attribute 'getatt'
И я ожидал получил «а» для вызова instb.gettattB()
чтобы возобновить Я хочу, чтобы наследовать класс B из класса A класса, дающего в аргументе класса B, потому что мой класс B будет быть подклассом различного класса, не всегда A.
Я не» Понимаете, что вы пытаетесь сделать, можете ли вы представить полный пример ожидаемого результата? Используйте 'class A (object)' и 'class B (object)', хотя, по крайней мере, если вы планируете поддерживать Python 2.X. –
# Это не работает - как он не работает? – KevinDTimm
Пожалуйста, разместите вывод, который вы получите при запуске кода. – ewok