Classes e Objetos em Python
Python é uma linguagem de programação orientada a objetos. Isso quer dizer que quase tudo na linguagem tem métodos e propriedades.
A classe é como um molde onde vários objetos são criados, todos com as mesmas características. Um objeto sempre pertence a alguma classe.
Criando uma classe
Para criar uma classe em python é utilizada a palavra reservada class.
Exemplo
Nesse exemplo criamos uma classe com a propriedade nome.
class Umaclasse:
nome = 'Uchiha Itachi'
nome = 'Uchiha Itachi'
Criando um objeto
Agora que já criamos uma classe podemos criar um objeto utilizando esse “molde”.
Exemplo
class Umaclasse:
nome = 'Uchiha Itachi'
classe = Umaclasse()
print(classe.nome)
nome = 'Uchiha Itachi'
classe = Umaclasse()
print(classe.nome)
Função __init__()
Toda classe tem a função __init__(), até a nossa classe que acabamos de criar. Essa função é criada automaticamente quando criamos uma classe. Mesmo ela não aparecendo no nosso código ela está lá, e é executada toda fez que é criado um novo objeto pertencendo a nossa classe.Mesmo essa função sendo adicionada no nosso código automaticamente, nos podemos modifica-la para fazer algo realmente útil. Essa função é utilizada para definir as propriedades dos nossos objetos.
Exemplo
Repare que em nenhum momento chamamos a função __init__() e mesmo assim ela foi executada. Isso acontece porque quando um objeto é criado a função init é executada, sempre.
class personagem:
def __init__(self, nome, idade):
self.nome = nome
self.idade = idade
personagem01 = personagem('Itachi Uchiha', 21)
personagem02 = personagem('Kakashi Hatake', 31)
print(personagem01.nome)
print(personagem01.idade)
print(personagem02.nome)
print(personagem02.idade)
def __init__(self, nome, idade):
self.nome = nome
self.idade = idade
personagem01 = personagem('Itachi Uchiha', 21)
personagem02 = personagem('Kakashi Hatake', 31)
print(personagem01.nome)
print(personagem01.idade)
print(personagem02.nome)
print(personagem02.idade)
O parâmetro self é apenas para identificar o próprio objeto. Você pode ser a linha três (self.nome = nome) assim: a propriedade nome desse objeto será igual á nome (argumento recebido). O nome self pode ser trocado por outro, contanto que seja o primeiro argumento da função init.
Exemplo
class personagem:
def __init__(primeiro_argumento, nome, idade):
primeiro_argumento.nome = nome
primeiro_argumento.idade = idade
personagem01 = personagem('Itachi Uchiha', 21)
print(personagem01.nome)
print(personagem01.idade)
def __init__(primeiro_argumento, nome, idade):
primeiro_argumento.nome = nome
primeiro_argumento.idade = idade
personagem01 = personagem('Itachi Uchiha', 21)
print(personagem01.nome)
print(personagem01.idade)
Propriedades dos objetos
As propriedades são como as características de um objeto. Por exemplo, o personagem Kakashi Hatake tem o cabelo branco, um olho vermelho, é quase sem chakra, é humilde (copiou mais de mil justsus mais só usa alguns). Essas são as características do personagem. Podemos dizer que o objeto “Kakashi Hatake” é da classe pessoa, tem uma cabeça, dois braços, etc. Pertencer à mesma classe quer disser que os objetos dessa classe têm as mesmas características, mais com valores diferentes.
Exemplo
class pessoa:
def __init__(self, nome, idade, cor_olho, cabelo = 'Preto'):
self.nome = nome
self.idade = idade
self.cor_olho = cor_olho
self.cabelo = cabelo
Kakashi_Hatake = pessoa('Kakashi Hatake', 31, 'Vermelho', 'Cinza')
Itachi_Uchiha = pessoa('Itachi Uchira', 21, 'Vermelho')
Sakura_Haruno = pessoa('Sakura Haruno', 17, 'Verde', 'Rosa')
print(Kakashi_Hatake.nome)
print(Kakashi_Hatake.idade)
print(Kakashi_Hatake.cor_olho)
print(Kakashi_Hatake.cabelo)
def __init__(self, nome, idade, cor_olho, cabelo = 'Preto'):
self.nome = nome
self.idade = idade
self.cor_olho = cor_olho
self.cabelo = cabelo
Kakashi_Hatake = pessoa('Kakashi Hatake', 31, 'Vermelho', 'Cinza')
Itachi_Uchiha = pessoa('Itachi Uchira', 21, 'Vermelho')
Sakura_Haruno = pessoa('Sakura Haruno', 17, 'Verde', 'Rosa')
print(Kakashi_Hatake.nome)
print(Kakashi_Hatake.idade)
print(Kakashi_Hatake.cor_olho)
print(Kakashi_Hatake.cabelo)
Métodos dos objetos
Os métodos são funções dentro de uma classe. Um objeto, além de ter características ele tem funções (métodos). Todo objeto tem suas características e suas funções. Um personagem no mundo de Naruto, por exemplo, pode andar, correr, lançar jutsus. Podemos codificar essas funções (métodos) no nosso código.
Exemplo
Um dos objetivos da programação orientada a objetos é o encapsulamento. Com o encapsulamento as variáveis e funções ficam unidas, independentes do resto do programa. Assim podemos criar um programa em blocos e utilizar esses blocos em outros programas com pouca alteração, e às vezes nenhuma.
class pessoa:
def __init__(self, nome, idade, cor_olho):
self.nome = nome
self.idade = idade
self.cor_olho = cor_olho
def lancarJutsu(self, jutsu):
print('Lançando jutsu ' + jutsu)
andando = False
Itachi_Uchiha = pessoa('Itachi Uchira', 21, 'Vermelho')
print(Itachi_Uchiha.nome)
Itachi_Uchiha.lancarJutsu('Tsukuyomi')
Itachi_Uchiha.andando = True
print(Itachi_Uchiha.andando)
def __init__(self, nome, idade, cor_olho):
self.nome = nome
self.idade = idade
self.cor_olho = cor_olho
def lancarJutsu(self, jutsu):
print('Lançando jutsu ' + jutsu)
andando = False
Itachi_Uchiha = pessoa('Itachi Uchira', 21, 'Vermelho')
print(Itachi_Uchiha.nome)
Itachi_Uchiha.lancarJutsu('Tsukuyomi')
Itachi_Uchiha.andando = True
print(Itachi_Uchiha.andando)
0 comentários:
Postar um comentário