Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duck typing e Composição

Pelo que entendi Composição e Duck typing andam juntos, é isso mesmo? Se alguém puder explicar um pouco melhor essa relação.

1 resposta
solução!
  1. 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
  1. DuckTyping: é a reprodução de uma comportamento através da nomenclatura dos atributos e dos métodos, mesmo que o objeto não tenha nenhuma relação de herança com o objeto relacionado.

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software