As classes Python são como modelos ou planos de cons­tru­ção. Com elas, pode escrever código reu­ti­li­zá­vel na forma de atributos e métodos.

O que são as aulas de Python?

Uma classe é um conceito abstrato que define atributos e métodos que um objeto pode ter. As classes Python funcionam como modelos para criar objetos concretos, que são ins­tân­cias dessa classe. Por exemplo, uma classe poderia ser chamada Coche e poderia ter atributos como cor e marca, e métodos como __conducir__ ou __frenar__.

Cada objeto de uma classe pode ter seus próprios valores para os atributos, mas com­par­ti­lha os métodos e a estrutura básica de com­por­ta­mento com outras ins­tân­cias da mesma classe. Por exemplo, é possível criar um objeto mi_coche da classe Coche com a cor __rojo__ e a marca __Toyota__, e a instância herdará au­to­ma­ti­ca­mente os métodos __conducir__ ou __frenar__ da classe.

Como criar classes em Python

Você pode definir classes em Python es­cre­vendo a palavra-chave class seguida do nome da classe e dois pontos.

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

Neste código Python, foi criada uma classe chamada MyClass que tem um cons­tru­tor __init__ que é acedido ao criar um objeto e que ini­ci­a­liza dois atributos, o attribute1 e o attribute2. O método my_method retorna uma cadeia formatada que contém os valores desses atributos.

Para criar um objeto baseado nesta classe, deve utilizar o nome da classe seguido de pa­rên­te­ses:

object1 = MyClass("Value 1", "Value 2")
# Calling a method of the object
result = object1.my_method()
python

Exemplos de uti­li­za­ção das classes Python

As classes Python podem criar sistemas complexos e relações entre di­fe­ren­tes entidades. A seguir, mostramos algumas formas de trabalhar com elas.

A função __str()__

A função __str__() em Python é um método especial que pode ser definido dentro das classes Python. Quando im­ple­men­tada, ela retorna uma string com uma re­pre­sen­ta­ção simples de um objeto. Pode-se aplicar a função str() di­re­ta­mente ao objeto ou combiná-la com uma instrução print().

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

Neste código, o método __str__() dentro da classe Person cria uma cadeia formatada que contém o nome e a idade de uma pessoa. Quando é executado print(person1), chama au­to­ma­ti­ca­mente o método __str__() do objeto person1 e resulta na cadeia que este método devolveu.

Definir métodos em classes Python

Em Python, também é possível definir métodos dentro de uma classe para executar operações sobre os objetos dessa classe. Assim, os objetos criados podem chamar esses métodos.

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

No exemplo anterior, foi criada a classe Rectangle, que inclui os dois métodos area() e perimeter(). Esses métodos servem para calcular a área e o perímetro de um retângulo com base nos valores de com­pri­mento e largura que foram passados ao ini­ci­a­li­zar o objeto. Em Python, self em um método de classe re­pre­senta uma re­fe­rên­cia ao objeto atual ao qual o método é aplicado.

O objeto my_rectangle é criado com um com­pri­mento de 5 e uma largura de 10. Em seguida, os métodos area() e perimeter() foram chamados sobre este objeto para calcular os valores res­pe­ti­vos.

Alterar as pro­pri­e­da­des dos objetos

Pode utilizar o operador ponto . para aceder a atributos es­pe­cí­fi­cos de um objeto e atualizar os seus valores. Pode atribuir novos valores di­re­ta­mente ao atributo, conforme pode ver a seguir:

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

A palavra-chave del serve para eliminar pro­pri­e­da­des de um objeto. No exemplo a seguir, a pro­pri­e­dade name do objeto person1 está a ser eliminada:

del person1.name
python
Nota

Tenha em atenção que as variáveis de instância são di­fe­ren­tes das variáveis de classe Python (Python class variables). As variáveis de classe são definidas fora do cons­tru­tor e só podem ser mo­di­fi­ca­das através do nome da classe.

Ir para o menu principal