Python classes: O que são e como usar classes em Python

Em Python, classes são estruturas fundamentais, pois funcionam como esquemas ou matrizes dessa linguagem de programação. Graças às classes de Python, programadores são capazes de escrever códigos reutilizáveis, que contém atributos e métodos.

O que são classes em Python?

Na linguagem de programação Python, classes são interpretadas de forma abstrata, por terem o poder de definir os atributos e os métodos que um objeto pode ter. Classes em Python servem como modelos para a criação de objetos concretos, que nada mais são do que instâncias de uma classe. Por exemplo, ao criarmos uma classe fictícia chamada carro, podemos conferir atributos a ela, como cor e marca, além de métodos __acelerar__ e __frear__.

Cada objeto de uma classe pode ter atributos com valores próprios, porém todos os objetos compartilham os mesmos métodos e estruturas comportamentais das demais instâncias da mesma classe. Detalhando ainda mais o nosso exemplo, dentro da classe carro, podemos estabelecer o objeto meu_carro, que tem a cor __vermelha__ e a marca __Toyota__. Contudo, os métodos da classe carro, __acelerar__ e __frear__, seguem sendo igualmente válidos a todos os objetos, ou seja, a todas as instâncias.

Como criar classes em Python

Você pode definir classes em Python fazendo uso da palavra-chave class, como mostra o código a seguir:

class MyClass:
    # Constructor method called when creating an object
    def __init__(self, attribute1, attribute2):
        self.attribute1 = attribute1
        self.attribute2 = attribute2
    
    # Method defined within the class
    def my_method(self):
        return f"Attribute 1: {self.attribute1}, Attribute 2: {self.attribute2}"
python

Nesse código escrito em Python, pensamos em gerar uma classe chamada MyClass. Adicionamos a ela um construtor, __init__, que é utilizado para a criação de um objeto e para a inicialização de dois atributos: attribute1 e attribute2. O método my_method, por sua vez, é responsável por retornar uma cadeia de caracteres (string) formatada, contendo os valores desses atributos.

Para derivar um objeto a partir da classe que criamos, inserimos o nome da classe seguido de parênteses:

object1 = MyClass("Value 1", "Value 2")
result = object1.my_method()
python
Hospedagem web com consultor pessoal

Rápido e escalável, confie na hospedagem da IONOS, que inclui domínio grátis no primeiro ano e endereço de e-mail!

  • Domínio
  • SSL Wildcard
  • Suporte 24 horas

Exemplos de uso de classes em Python

Em Python, classes são capazes de criar sistemas complexos e estabelecer relações entre as mais diferentes entidades. Observe, a seguir, situações variadas em que classes podem fazer a diferença, criando e modelando estruturas de forma mais organizada e reutilizável.

Método __str()__

Dentro de classes em Python, o método __str__(), também conhecido como dunder, é considerado um método especial. Ele pode ser usado para definir uma representação legível de um objeto na forma de uma string. Você pode aplicar o método __str()__ diretamente, passando uma instância da classe para a função str(), ou o combinando com a função print(). O exemplo abaixo explora as possibilidades:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def __str__(self):
        return f"Name: {self.name}, Age: {self.age}"
person1 = Person("Alice", 30)
print(person1) # Output: Name: Alice, Age: 30
python

No nosso código fictício, o método __str__() foi usado para criar, dentro da classe Person, uma string formatada contendo o nome e a idade de uma pessoa. Assim que a função print(person1) é inserida, ela chama automaticamente o método __str__() do objeto person1, para que a respectiva string seja retornada por esse método.

Definir métodos de classes em Python

Na linguagem de programação Python, você também pode definir métodos dentro de uma classe, para que eles executem operações nos respectivos objetos. Esses métodos podem ser chamados pelos objetos criados, como mostra o código abaixo:

class Rectangle:
    def __init__(self, length, width):
        self.length = length
        self.width = width
    
    def area(self):
        return self.length * self.width
    def perimeter(self):
        return 2 * (self.length + self.width)
# Creating an object of the class
my_rectangle = Rectangle(5, 10)
# Calling methods of the object
area = my_rectangle.area()
perimeter = my_rectangle.perimeter()
# Printing the calculated values
print("Area =", area) # Output: Area = 50
print("Perimeter =", perimeter) # Output: Perimeter = 30
python

Nesse código, desejamos criar a classe Rectangle, que deve conter dois métodos: area() e perimeter(). Esses métodos servem para calcular, respectivamente, a área e o perímetro do retângulo com base nos valores comprimento (length) e largura (width), que foram fornecidos na inicialização do objeto. Nesse método de classe em Python, self faz referência ao objeto atual ao qual o método está sendo aplicado.

Observe que, como resultado, o objeto my_rectangle é criado, medindo 5 de comprimento e 10 de largura. Em seguida, os métodos area() e perimeter() são aplicados a esse mesmo objeto, com o objetivo de calcular os demais valores.

Alterar propriedades de objetos

O operador ponto . pode ser utilizado em Python para acessar os atributos específicos de um objeto, com o objetivo de atualizar os respectivos valores. Assim sendo, é possível atribuir novos valores a cada atributo de forma direta. O código abaixo comprova:

person1.name = "Sarah"
person1.age = 35
python

Neste próximo exemplo, a palavra-chave del é usada para excluir as propriedades de um objeto:

del person1.name
python
Nota

Não confunda variáveis de instância com variáveis de classe em Python. Variáveis de classe são definidas fora do construtor e só podem ser alteradas por meio do nome da classe. Artigo especializado do nosso Digital Guide apresenta mais detalhes.

Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top