Como criar uma classe em Python (programação orientada a objetos)

Aprenda como criar uma classe em Python. Domine o construtor __init__, métodos de instância, palavra-chave self e instanciação de objetos.

Experimente esta solução no Editor

Visão geral

A Programação Orientada a Objetos (OOP) é um paradigma poderoso usado para modelar entidades do mundo real, estruturar aplicativos e promover a reutilização de código. Em Python, tudo é um objeto, e as classes são os projetos a partir dos quais os objetos individuais são criados. A criação de uma classe permite agrupar atributos de dados e funções.

Para definir uma classe, você usa a palavra-chave `class` seguida do nome da classe (convencionalmente escrito em PascalCase). Dentro da classe, o método mais importante é o construtor: `__init__(self, ...)`. Este método mágico especial é executado automaticamente quando você instancia a classe, inicializando os atributos de dados iniciais do objeto.

O parâmetro `self` representa a instância específica da classe que você está criando ou modificando atualmente. Cada método de instância dentro da classe deve aceitar `self` como seu primeiro argumento. Os métodos de instância são funções definidas dentro da classe que operam nos atributos do objeto, permitindo o encapsulamento limpo da lógica.

Saída de código e execução

Este script demonstra a criação de uma classe, a definição de propriedades, métodos de instância de classe e a criação de objetos.

create_class.py
Experimente no Editor
# 1. Defining a class
class User:
    def __init__(self, username, email):
        self.username = username
        self.email = email
        self.active = True  # Default attribute

    def get_info(self):
        status = "Active" if self.active else "Inactive"
        return f"User: {self.username} | Email: {self.email} | Status: {status}"

# 2. Instantiating objects of the class
user1 = User("codeguy", "guy@example.com")
user2 = User("pygirl", "girl@example.com")

# 3. Accessing attributes and invoking methods
print(user1.get_info())
print(user2.username, "has email", user2.email)
Saída terminal
User: codeguy | Email: guy@example.com | Status: Active
pygirl has email girl@example.com

Implementação passo a passo

  • Use a palavra-chave class para declarar o modelo de classe.
  • Defina o construtor __init__(self, ...) para configurar os atributos iniciais.
  • Adicione métodos de instância que aceitem self como o primeiro parâmetro para trabalhar com o estado do objeto.
  • Chame ClassName(...) para instanciar e criar uma nova instância de objeto.

Perguntas frequentes

O que o parâmetro self representa?

Refere-se à instância específica do objeto que está sendo criado ou manipulado. É necessário vincular atributos à instância.

Uma classe pode ter atributos compartilhados entre todas as instâncias?

Sim, esses são atributos de classe. Defina-os diretamente no cabeçalho da classe (fora de __init__) e acesse-os usando ClassName.attribute.

Tópicos Relacionados

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.