Pelo que entendi Composição e Duck typing andam juntos, é isso mesmo? Se alguém puder explicar um pouco melhor essa relação.
Pelo que entendi Composição e Duck typing andam juntos, é isso mesmo? Se alguém puder explicar um pouco melhor essa relação.
Composição: é quando um objeto usa outros objetos(e seus atributos e métodos) dentro dele, mesmo sem relação de herança(mãe ou filha)
Imagina o seguinte: A classe Empresa tem diversas classes dentro dela(classe Funcionários, classe Departamentos e etc), mesmo que não herde ou seja herdada
class Empresa(object)
def __init__(nome, cnpj):
self.funcionario = Funcionario('João', 'Encarregado')
class Funcionario(object)
def __init__(nome, cargo):
pass
Exemplo:
qualquer instância da classe Funcionário não será filha da classe Empresa, mas se a classe Empresa chamar o método "pagamento" e passar qualquer Funcionário como parâmetro, ela vai conseguir pagar o funcionário.
class Empresa(object)
def __init__(nome, cnpj):
self.funcionario = Funcionario('João', 'Encarregado')
def pagar_salario(funcionario = self.funcionario, valor):
funcionario.receber_salario(valor)
class Funcionario(object)
def __init__(nome, cargo):
self.saldo = 0
self.cargo = cargo
def receber_salario(valor):
self.saldo += valor