A programação com Python abre muitas possibilidades que vão além de scripts simples. Um componente central na programação orientada a objetos é o trabalho com classes. Elas formam a base para objetos e permitem que você crie e administre estruturas de dados complexas. Neste guia, você aprenderá como definir suas próprias classes em Python para utilizar suas propriedades e métodos de forma eficaz.
Principais descobertas
- Classes são a chave para a programação orientada a objetos em Python.
- Um inicializador (construtor) permite que você defina propriedades específicas ao criar uma classe.
- Métodos em classes permitem que você encapsule funções que operam nas propriedades de um objeto.
- O acesso às propriedades é feito através do operador ponto.
Guia passo a passo
Vamos começar com os fundamentos da construção de classes em Python. Primeiro, você deve definir uma nova classe com a palavra-chave class. Você pode fazer isso no seu código Python da seguinte forma:

Aqui temos uma classe vazia chamada Funcionário. Você pode defini-la inicialmente sem parâmetros, o que significa que a classe é criada sem uma inicialização específica. Isso é uma base importante para garantir que você não tenha erros ao criar objetos mais tarde.
Agora crie um objeto dessa classe. Para isso, basta usar o nome da classe e colocar um parêntese vazio:
Neste caso, temos um objeto Funcionário que acabamos de criar. O próximo passo é expandir a classe com propriedades. Por exemplo, você poderia adicionar um nome à classe Funcionário.
Primeiro, você precisa definir um inicializador que atuará como o construtor da sua classe. Isso é feito através do método __init__.

Aqui você vê como um construtor __init__ é definido. Passamos o nome como parâmetro e usamos self para armazenar o nome do objeto atual.
Agora que você tem uma propriedade, pode passar diretamente um nome ao criar um objeto:

Se você agora criar o objeto participante com o nome "Jan", o nome será armazenado na instância. Através da autocompletação, você pode verificar se o nome foi definido corretamente.
Para utilizar as propriedades, você pode acessá-las usando o operador ponto:

Esse é o momento em que você pode acessar as propriedades do seu objeto. Neste caso, você imprime o nome do participante.
Além de propriedades, você também pode implementar métodos. Criar um método funciona de maneira semelhante a definir uma função:

Aqui você define o método registrar. Novamente, observe que self é passado automaticamente como um parâmetro para o método, a fim de acessar a instância. Ao registrar, poderíamos, por exemplo, imprimir uma mensagem de sucesso:

Quando você chama o método registrar, parece o seguinte:

Aqui você chama o método na instância participante, que dá um retorno sobre o registro.
Finalmente, também podemos passar parâmetros para métodos, assim como para funções. Por exemplo, um método cancelar que espera um parâmetro para cancelamento antecipado:

Aqui você analisa se o participante deseja desistir antecipadamente e emite uma mensagem correspondente.
ScreenShot_320
Isso mostra como interativa sua classe e métodos podem se tornar e como eles reagem a entradas.
Por fim, devemos recapitular os princípios básicos que aprendemos. A definição de classes consiste em definir atributos e métodos que são relevantes para os objetos correspondentes. O construtor __init__ é central para definir atributos ao criar o objeto.
Resumo – Criando e utilizando suas próprias classes em Python
Compreendendo e aplicando esses princípios básicos, você pode desenvolver programas poderosos e flexíveis em Python. Você pode criar classes que encapsulam funções e propriedades específicas para tornar a programação mais amigável e eficaz.
Perguntas frequentes
Como defino uma classe em Python?Use a palavra-chave class, seguida pelo nome da classe e um dois pontos.
Qual é o propósito do construtor __init__?Ele é usado para realizar inicializações ao criar um objeto.
Como acesso as propriedades de um objeto?Use o operador ponto, seguido pelo nome da propriedade, por exemplo, objeto.propriedade.
Posso passar vários parâmetros para um método?Sim, você pode definir métodos que aceitam vários parâmetros.
Posso usar funções dentro das minhas classes?Sim, métodos nada mais são do que funções que estão vinculadas a uma classe.