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:
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:
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
Eu nao preciso criar os atributos antes de usá-los no construtor?
ResponderExcluirNos exemplos, os atributos sao diretamente recebidos pelo construtor, fiquei um pouco confuso com o escopo dessas variáveis.
Na verdade você está criando variáveis no construtor, como numa função elas serão preenchidas quando você criat o objeto.
Excluir