Mandar um café pro programador

Pode me ajudar a transformar cafeína em código?

Parâmetros e Argumentos no Método construtor __init__

Neste artigo de nosso curso de Python, vamos falar um pouco mais sobre o método __init__, também conhecido como o método construtor.

Tutorial anterior: Parâmetros e Argumentos em Classes
Estude offline: Apostila Python Progressivo

Método Construtor: __init__

O método init é bem especial, pois como já explicamos, ele é automaticamente executado sempre que instanciamos um objeto de uma classe.

Ele é chamado de construtor, e vimos ele apenas usando o parâmetro self:
def __init__(self)

Porém, é mais comum usarmos ele com outros parâmetros.
Por exemplo, para ele receber também um número, que representa o número de portas de um carro, através da variável num, fazemos:
def __init__(self, num)

E para usar esse método, basta passarmos um argumento ao criamos o Objeto.
Lembra que criamos um objeto da classe carro da seguinte maneira:
palio = Carro()

Para criar esse mesmo objeto, já enviando o número de portas (2 por exemplo), fazemos:
palio = Carro(2)


Veja um exemplo de código:

class Carro:
 def __init__(self, num):
  self.portas = num
  print("Carro criado! Ele tem", self.portas,"portas")
 
palio = Carro(2)

E o resultado:
Como usar o método __initit__ em Python


Nesse código nosso método construtor já atribui o número de portas recebido a variável portas, interna de toda classe Carro. Veja que o método init tem dois parâmetros: self e num

Mas na hora de passar os argumentos, só passamos o num, pois já estamos indicando o objeto (palio) que estamos fazendo isso.

Passando Vários Argumentos

Agora vamos fazer a mesma coisa, porém vamos usar dois parâmetros e dois argumentos.
Além do número de portas, primeiro vamos passar uma string, com o modelo do carro.

Vamos armazenar essa informação na variável nome (logo, self.nome), veja:

class Carro:
 def __init__(self,nome,num):
  self.nome = nome
  self.portas = num
  print(self.nome,"criado! Ele tem", self.portas,"portas")

palio = Carro("Palio", 2)

Resultado:
Método init
Note que fizemos:
self.nome = nome


Esse primeiro nome, junto com self, se refere ao atributo.
Já o segundo nome, se refere ao argumento, ok?

É como fazer:
count = count + 1

Usamos novamente a mesma variável, duas vezes, na mesma expressão. Leia assim: count vai receber seu valor antigo count somado mais um.

Método Construtor

Os métodos construtores são úteis para, como o nome diz, construir um objeto.
Por exemplo, se você cuida do sistema de uma empresa e tem a classe Funcionario.

Então, um novo empregado foi contratado e você vai cadastrar ele no sistema, para isso, vai criar um novo objeto, o funcionario[2112], ou seja, mais um objeto do tipo Funcionario na sua lista de empregados da firma.

Ora, todo empregado tem um nome, número, cargo e salário.
Já crie seu objeto com essas informações. O método construtor __init__ serve justamente pra isso, pra criar logo um objeto fazendo o necessário e obrigatório:

  • funcionario[2112] = Funcionario("Jose da Silva", 2112, "Gerente", 4800.00)

Prontinho, o Zé da Silva, de número 2112, vai ser gerente e ter um salario R$ 4.800,00 (ele é gerente da equipe de programadores, obviamente estudou Python pra ganhar isso).

Quer saber como ter um salário assim, programando em Python?
Como se tornar um programador profissional

2 comentários:

  1. Eu nao preciso criar os atributos antes de usá-los no construtor?
    Nos exemplos, os atributos sao diretamente recebidos pelo construtor, fiquei um pouco confuso com o escopo dessas variáveis.

    ResponderExcluir
    Respostas
    1. Na verdade você está criando variáveis no construtor, como numa função elas serão preenchidas quando você criat o objeto.

      Excluir

Bora fazer evoluir o ensino da Programação no Brasil ?

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo