Module (73%)
Section (52%)

Как Python находит свойства и методы: продолжение

Множественное наследование происходит, когда в классе есть более одного суперкласса.

Синтаксически, такое наследование представляется в виде списка разделенных запятыми суперклассов, заключенных в круглые скобки после нового имени класса - как здесь:

class SuperA: var_a = 10 def fun_a(self): return 11 class SuperB: var_b = 20 def fun_b(self): return 21 class Sub(SuperA, SuperB): pass obj = Sub() print(obj.var_a, obj.fun_a()) print(obj.var_b, obj.fun_b())

Класс Sub имеет два суперкласса: SuperA и SuperB. Это означает, что класс Sub наследует все предложения, предлагаемые как SuperA, так и SuperB.

Код дает следующее:

10 11 20 21

output

Теперь пришло время ввести новый термин - переопределение.

Как Вы думаете, что произойдет, если более чем один из суперклассов определяет сущность с определенным именем?



Code

class SuperA:
var_a = 10
def fun_a(self):
return 11


class SuperB:
var_b = 20
def fun_b(self):
return 21


class Sub(SuperA, SuperB):
pass


obj = Sub()

print(obj.var_a, obj.fun_a())
print(obj.var_b, obj.fun_b())
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×