From 751e56e75983d360ebe2eb63a972451faa2ffddb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Ot=C3=A1vio?= Date: Thu, 17 Nov 2022 09:21:00 -0300 Subject: [PATCH] =?UTF-8?q?Teoria=20-=20Heran=C3=A7a=20M=C3=BAltipla=20-?= =?UTF-8?q?=20Python=20Orientado=20a=20Objetos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aula140.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 aula140.py diff --git a/aula140.py b/aula140.py new file mode 100644 index 0000000..8fafa72 --- /dev/null +++ b/aula140.py @@ -0,0 +1,28 @@ +# Herança Múltipla - Python Orientado a Objetos +# Quer dizer que no Python, uma classe pode estender +# várias outras classes. +# Herança simples: +# Animal -> Mamifero -> Humano -> Pessoa -> Cliente +# Herança múltipla e mixins +# Log -> FileLog +# Animal -> Mamifero -> Humano -> Pessoa -> Cliente +# Cliente(Pessoa, FileLog) +# +# A, B, C, D +# D(B, C) - C(A) - B(A) - A +# +# método -> falar +# A +# / \ +# B C +# \ / +# D +# +# Python 3 usa C3 superclass linearization +# para gerar o mro. +# Você não precisa estudar isso (é complexo) +# https://en.wikipedia.org/wiki/C3_linearization +# +# Para saber a ordem de chamada dos métodos +# Use o método de classe Classe.mro() +# Ou o atributo __mro__ (Dunder - Double Underscore)