Classes e Objetos no Python

Cansado de programar?

Cansado(a) de quebrar a cabeça para aprender a programar Python de verdade?

Conheça a melhor e mais completa formação de Python e Django e sinta-se um programador verdadeiramente competente. Além de Python e Django, você também vai aprender Banco de Dados, SQL, HTML, CSS, Javascript, Bootstrap e muito mais!

Quero aprender Python e Django de Verdade! Quero aprender!
Suporte

Tire suas dúvidas diretamente com o professor

Suporte

Projetos práticos voltados para o mercado de trabalho

Suporte

Formação moderna com foco na prática profissional

Salve salve Pythonista :wave:

Neste artigo, vamos explorar o conceito de Classes e Objetos da Programação Orientada a Objetos na linguagem de programação Python.

As classes são uma forma poderosa de organizar e estruturar nosso código, permitindo a criação de objetos personalizados com propriedades e comportamentos próprios.

É essencial entender o uso de Classes para aproveitar ao máximo o potencial da linguagem Python.

Então se prepare e vamos nessa!

Vá Direto ao Assunto…

Introdução

As classes podem ser definidas como modelos para a criação de objetos.

Elas contêm atributos (variáveis) e métodos (funções) que definem o comportamento do objeto criado a partir da classe.

Ao criar uma classe, estamos criando um tipo de dado personalizado e reutilizável em nosso código.

A utilização de classes é extremamente importante na programação orientada a objetos, pois permite a abstração de problemas complexos em entidades menores, além de facilitar a manutenção e reutilização do código.

Definindo uma Classe

No Python, podemos definir uma classe utilizando a palavra-chave class, seguida pelo nome da classe.

O nome da classe deve seguir algumas convenções, como começar com uma letra maiúscula e utilizar a notação CamelCase (iniciais das palavras compostas são maiúsculas e não há espaços ou underscores).

Aqui está um exemplo simples de uma classe chamada Pessoa:

1
2
class Pessoa:
    pass

Neste exemplo, utilizamos a palavra-chave pass para indicar que a definição da classe está vazia.

Isso permite que possamos criar a classe sem implementar nenhum atributo ou método por enquanto.

Criando um Objeto

Uma vez definida a classe, podemos criar objetos a partir dela.

Esses objetos são chamados de instâncias da classe.

Para criar uma instância, utilizamos o nome da classe seguido de parênteses:

1
pessoa1 = Pessoa()

No exemplo acima, criamos uma instância da classe Pessoa e a atribuímos à variável pessoa1.

Agora, podemos acessar essa instância e manipulá-la.

Está curtindo esse conteúdo? :thumbsup:

Que tal receber 30 dias de conteúdo direto na sua Caixa de Entrada?

Sua assinatura não pôde ser validada.
Você fez sua assinatura com sucesso.

Assine a PyDicas e receba 30 dias do melhor conteúdo Python direto na sua Caixa de Entrada: direto e sem enrolação!

Atributos da Classe

A classes podem ter atributos, que são variáveis que pertencem à classe e são compartilhadas por todas as instâncias criadas a partir dessa classe.

Os atributos representam as características que o objeto da classe possui.

Podemos adicionar um atributo à classe Pessoa da seguinte forma:

1
2
3
class Pessoa:
    nome = "João"
    idade = 30

No exemplo acima, adicionamos os atributos nome e idade à classe Pessoa.

Agora, todas as instâncias dessa classe terão esses atributos definidos.

Podemos acessar e modificar os atributos de uma instância da seguinte forma:

1
2
3
4
5
pessoa1 = Pessoa()
print(pessoa1.nome)  # Saída: João

pessoa1.nome = "Maria"
print(pessoa1.nome)  # Saída: Maria

No exemplo acima, acessamos o atributo nome da instância pessoa1 e o modificamos para “Maria”.

Podemos fazer o mesmo com o atributo idade.

Métodos da Classe

Além de atributos, as classes também podem ter métodos, que são funções que pertencem à classe e podem ser chamadas pelas instâncias dessa classe.

Os métodos representam os comportamentos que o objeto da classe pode realizar.

Podemos adicionar um método à classe Pessoa da seguinte forma:

1
2
3
class Pessoa:
    def falar(self, mensagem):
        print(f"{self.nome} diz: {mensagem}")

No exemplo acima, adicionamos o método falar à classe Pessoa.

O método recebe dois parâmetros: self e mensagem.

O parâmetro self é uma referência à própria instância da classe, permitindo o acesso aos atributos e métodos dessa instância.

Podemos chamar o método falar da seguinte forma:

1
2
3
pessoa1 = Pessoa()
pessoa1.nome = "João"
pessoa1.falar("Olá!")  # Saída: João diz: Olá!

E a saída será:

1
João diz: Olá!

No exemplo acima, chamamos o método falar da instância pessoa1, passando a mensagem “Olá!” como parâmetro.

E aí, tá curtindo? Que tal aprender Python e Django DE VERDADE em um curso prático, voltado pro mercado?! :point_down:

Jornada Python Jornada Python

Construtor da Classe

O construtor é um método especial que é executado automaticamente quando uma instância da classe é criada.

No Python, o construtor é chamado de __init__.

Podemos utilizar o construtor para definir valores iniciais para os atributos da classe.

Aqui está um exemplo de como definir um construtor na classe Pessoa:

1
2
3
4
class Pessoa:
    def __init__(self, nome, idade):
        self.nome = nome
        self.idade = idade

No exemplo acima, definimos o construtor __init__ com os parâmetros nome e idade.

Dentro do construtor, atribuímos os valores desses parâmetros aos atributos da classe Pessoa.

Podemos criar uma instância da classe Pessoa e passar os valores para o construtor da seguinte forma:

1
2
3
pessoa1 = Pessoa("João", 30)
print(pessoa1.nome)
print(pessoa1.idade)

Resultando em:

1
2
João
30

No exemplo acima, criamos uma instância da classe Pessoa com o nome “João” e idade 30.

Ao imprimir os valores dos atributos nome e idade, obtemos os valores passados no construtor.

Herança de Classes

Uma vantagem das classes é a possibilidade de criar novas classes a partir de classes existentes. Isso é chamado de Herança.

A classe derivada herda todos os atributos e métodos da classe base.

Aqui está um exemplo de como criar uma classe derivada (também chamada de subclasse) a partir da classe Pessoa:

1
2
3
4
class Estudante(Pessoa):
    def __init__(self, nome, idade, matricula):
        super().__init__(nome, idade)
        self.matricula = matricula

No exemplo acima, criamos a classe Estudante que herda da classe Pessoa.

Utilizamos o método super().__init__() para chamar o construtor da classe Pessoa e passar os valores para os atributos nome e idade.

Podemos criar uma instância da classe Estudante e acessar os atributos e métodos da classe base da seguinte forma:

1
2
3
4
5
estudante1 = Estudante("Maria", 18, "12345")
print(estudante1.nome)  
print(estudante1.idade)  
print(estudante1.matricula)  
estudante1.falar("Olá!")  

O que resultará em:

1
2
3
4
Maria
18
12345
Maria diz: Olá!

No exemplo acima, criamos uma instância da classe Estudante com o nome “Maria”, idade 18 e matrícula “12345”.

Ao imprimir os valores dos atributos e ao chamar o método falar, temos acesso aos atributos e métodos da classe base Pessoa.

Conclusão

As classes são fundamentais na linguagem de programação Python e permitem a criação de código modular, organizado e reutilizável.

Elas fornecem uma forma concisa e eficiente de representar e manipular objetos em nossos programas.

Neste artigo, vimos como definir uma classe, criar objetos, adicionar atributos e métodos, utilizar um construtor e explorar a herança de classes.

Agora, você tem o conhecimento necessário para começar a utilizar as classes em seus projetos Python.

Espero que este artigo tenha sido útil e que você possa aproveitar ao máximo as classes na sua jornada de programação Python!

Nos vemos no próximo Post! :wave:

#newsletter Olá :wave: Curtiu o artigo? Então faça parte da nossa Newsletter! Privacidade Não se preocupe, respeitamos sua privacidade. Você pode se descadastrar a qualquer momento.