Есть базовый класс и два производных класса.
Первый производный класс не имеет собственной реализации foo
(наследует из базового), второй - имеет.
При множественном наследовании в случае old-style классов
используется foo базового класса (из c1)
В случае new-style - из c2.
Почему так?
# 1
class b:
def foo(self):
print('b')
class c1(b):
pass
class c2(b):
def foo(self):
print('c2')
class c(c1, c2):
pass
cc=c()
cc.foo() # выводит b
# 2
class b(object):
def foo(self):
print('b')
class c1(b):
pass
class c2(b):
def foo(self):
print('c2')
class c(c1, c2):
pass
cc=c()
cc.foo() # выводит c2

Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от mnt

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [Python] Множественное наследование (2010)
- Форум Вызов метода классового поля в Python (2014)
- Форум Просветите по наследованию object в python 3 (2017)
- Форум [python] разные возвращаемые значения для одноименного аттрибута класса или объекта класса (2010)
- Форум Python3: private methods (2023)
- Форум маленький вопрос по Python (2014)
- Форум Про полиморфизм (2013)
- Форум [python] сложение классов (2010)
- Форум Как в python вернуть рефку? (2018)
- Форум Как реализовать method unbinding? (2012)