Classes
Classes são criadas utilizando a palavra reservada class, tem métodos definidos com a palavra reservada def
.
Atenção à indentação e ao self! Para um método pertencer à uma classe, ele precisa estar indentado dentro da classe e definido com o argumento self.
Os métodos funcionam de forma análoga às funções, possuindo parâmetros e retorno opcionais.
class NomeDaClasse (HerancaOpcional):
# Se não herdar de outra classe, não precisa nem dos parênteses
def __init__(self, argumentos_opcionais):
# Inicializador da classe
# É executado quando a classe é instanciada
def metodos_da_classe(self, argumentos_opcionais):
# Realizam operações sobre a classe
class PyLadies:
# Inicializador da classe
def __init__(self, nome_capitulo, num_integrantes, integrantes):
self.nome_capitulo = nome_capitulo
self.num_integrantes = num_integrantes
self.integrantes = integrantes
print('Capítulo criado!')
def __str__(self):
return f"PyLadies {self.nome_capitulo}\n{self.num_integrantes} integrantes:\n" + "\n".join(self.integrantes)
def adicionar_integrante(self, nome):
'''Esta função adiciona novas integrantes a PyLadies. Modifica lista de participantes e número total de integrantes''' # Isto é uma docstring
self.num_integrantes += 1
self.integrantes.append(nome)
Instanciando e inicializando a classe
pyladies_sao_carlos = PyLadies('São Carlos', 6, ["Amanda", "Ana Dulce", "Hemilyn", "Juliana Karoline", "Juliana Alves", "Thayana"])
Chamando o método adicionar integrante
pyladies_sao_carlos.adicionar_integrante("Marília")
Utilizando o método especial __str__
para exibir a classe
print(pyladies_sao_carlos)
Em Python, o inicializador da classe é o __init__
, que faz parte dos conhecidos dunder methods, os “métodos mágicos” do Python.
Existem muitos dunder methods que não iremos abordar neste momento, focaremos em __init__
, que inicializa a classe, e __str__
, que cria uma representação da classe voltada ao usuário e permite que um objeto seja passado diretamente em um print.
Exercícios
Acesse a lista de exercícios para praticar o que acabamos de estudar juntas.