Classes
Criando nossa primeira classe
Na disciplina Developer Life não entraremos em detalhes sobre o que são classes, nem como montar boas classes. Queremos apenas saber o mínimo para poder utilizá-las1. Você aprenderá mais sobre essa outra forma de programar no próximo semestre.
Neste primeiro momento você pode entender uma classe como um tipo de dados do Python. Na verdade, já trabalhamos com algumas classes, por mais que não tenhamos chamado-as assim: listas, strings e dicionários são algumas das classes disponíveis na linguagem. A diferença é que agora vamos criar novas classes (ou tipos) no Python.
Outra forma de entender uma classe é como uma espécie de dicionário que também guarda funções, que conseguem acessar os valores desse "dicionário". É uma maneira de unir dados e funcionalidade relacionada a esses dados no mesmo lugar.
A ideia é semelhante ao que fazemos com um def
. Primeiro definimos a classe e depois usamos quando for necessário. Suponha, por exemplo, que queremos criar um novo tipo que represente um ponto com coordenadas x
e y
. Ele poderia ser feito da seguinte maneira (o exemplo completo está no arquivo teste_ponto.py
):
O trecho de código class Point:
define uma classe Point
que possui coordenadas x
e y
ambas iguais a zero.
Note que apenas definimos esse novo tipo, mas ainda não usamos. A partir desse momento o Python sabe o que é uma lista, o que é uma string e agora também sabe o que é um Point
. Vamos utilizar esse nosso novo tipo!
Com calma
Não explicamos os novos trechos de código: def __init__(self):
, self.x
e self.y
. Provavelmente não está muito claro como eles funcionam, mas voltaremos a eles mais para frente.
Testando nossa primeira classe#
Vamos utilizar o exercício Minha primeira classe para seguir o handout a partir daqui.
Exercício 1
Exercício 2
Resposta
O x
e y
são "variáveis" (chamamos de atributos) que estão ligadas àquele ponto
específico.
Exercício 3
Resposta
As atribuições dos valores 3
e 7
às variáveis x
e y
antes do print
não tem nenhum efeito prático. Nós estamos imprimindo o valor do atributo x
associado à variável ponto
e não a variável x
do programa.
Vamos continuar modificando nossa classe Point
para entender melhor o que está acontecendo.
-
Classes fazem parte de um paradigma de programação chamado Programação Orientada a Objetos (POO), que teve um impacto significativo na indústria de software nos anos 80/90 e que dura até os dias de hoje. Neste semestre, vamos focar apenas na ponta do iceberg. Por esse motivo, dizemos que vamos trabalhar com classes e não necessariamente programação orientada a objetos. ↩