У двух моих классов должен быть один и тот же метод, но они не связаны наследованием.
Следующие работы в Python 3:
class A(object):
def __init__(self):
self.x = 'A'
def printmyx(self):
print(self.x)
class B(object):
def __init__(self):
self.x = 'B'
printmyx = A.printmyx
a = A()
b = B()
a.printmyx()
b.printmyx()
и печать
A
B
Однако в Python 2 я получаю
Traceback (most recent call last):
File "py2test.py", line 18, in <module>
b.printmyx()
TypeError: unbound method printmyx() must be called with A instance as first argument (got nothing instead)
Я думаю, проблема в том, что в Python 3 printmyx
- это просто обычная функция, в то время как в Python 2 это несвязанный метод.
Как заставить код работать в Python 2?
edit
В моем реальном коде A
и B
наследуются от другого родителяклассы. Они должны использовать один вспомогательный метод, но не имеют другого отношения друг к другу.