Tutorial anterior: Como criar Classes e Objetos
- Baixe e estude offline: Apostila Python Progressivo
Métodos em Classes: __init__
No tutorial passado, onde ensinamos como criar classes e objetos, usamos um método muuuuito especial, o __init__
Esse método é especial porque é, geralmente, o primeiro definido em toda classe.
O motivo de ser especial é que ele sempre é executado quando criamos uma instância de um objeto.
Automaticamente o Python invoca o __init__() quando você cria um objeto.
- Quer trabalhar e ganhar dinheiro com Python?
Veja: Como ser um programador profissional
O parâmetro self em Python
Como explicamos, o código da classe é apenas um molde dos objetos, uma forma.Não existem especificamente uma classe. Um objeto sim, existe especificamente.
E é em cada objeto, específica e unicamente, que os métodos vão atuar, e é por isso que o método self é necessário em cada método de uma classe, pra simbolizar que estamos operando em uma informação de objeto, especificamente.
self, em inglês, quer dizer auto, própria, ele mesmo.
Ou seja, se refere aquele objeto, em específico.
Pode criar 1 trilhão de objetos de uma mesma classe. Mas o self se refere aquele objeto específico, ok ? Quando um método executa, ele precisa saber em qual destes objetos existentes ele vai precisar atuar.
Como Criar e Acessar Atributos em Python
Ok, já vimos um método em ação em POO, o __init__ (que como veremos mais a frente, é um método construtor).Mas as classes também encapsulam outra coisa importante além de métodos, os atributos, que nada mais são que informações, variáveis onde iremos armazenar dados.
Por exemplo, vamos criar o atributo portas e inicializar com o valor 2.
Se criamos um objeto de nome Celta e ele tem um atributo chamado portas, acessamos esse atributo através de ponto, assim:
- Celta.portas
Se tem um atributo chamado motor num classe de onde instanciamos o objeto BMW, acessamos os dados desse motor assim:
- BMW.motor
Vejamos um exemplo:
class Carro: portas = 4 def __init__(self): print("Carro criado") corolla = Carro() print("Numero de portas:", corolla.portas)
Rodando, o resultado vai ser:
Bem simples e intuitivo, não?
Se puxar pela memória, já usamos o atributo pi da math, em nossos exercícios da seção básica: math.pi, embora seja um pouco diferente pois math é um módulo, mostra a lógica de usar o ponto.
math.pi = quero usar a variável pi que está em math
corolla.portas = quero usar a variável portas que está no objeto corolla
Como Criar um Método
Aprendemos que a função interna de uma classe, chamada __init__ é um método, que por definição, é executada sempre que instanciamos um objeto.Porém, é possível também criar nossos próprios métodos.
A recomendação é que você crie métodos para trabalhar com os dados da própria Classe, eles servem para moldar e definir o comportamento dos objetos.
Por exemplo, vamos criar o método exibePortas()
Ela simplesmente retorna o valor de portas do carros, veja como fica nosso código:
Note que o primeiro parâmetro de todo método, é self.class Carro: portas = 3 def __init__(self): print("Carro criado") def exibePortas(self): return self.portas veloster = Carro() print("Numero de portas:",veloster.exibePortas())
Se quiser retornar um atributo de uma classe, também use o self:
self.portas
Sempre, ok?
E para invocar o método exibePortas(), do objeto veloster, use o ponto também:
veloster.exibePortas()
Embora esse método receber o parâmetro self, você não precisa enviar nenhum argumento para este parâmetro.
No próximo tutorial vamos aprender como usar mais parâmetros e argumentos, para criar métodos mais interessantes.
Conciso e pragmático.Parabéns.A sua didática é ótima!
ResponderExcluirMuito bom! Parabéns e obrigado
ResponderExcluirBom
ResponderExcluirParabéns e Obrigado pelo curso!
ResponderExcluirMuito Bom !
ResponderExcluirObrigado !
Excelente Didatica num assunto que não é tão trivial assim, parabens pelas explicações!
ResponderExcluir