Menu
Coddy logo textTech

Decorador de Método Estático

Parte da seção Object Oriented Programming do Journey de Python da Coddy — lição 11 de 64.

O decorador @staticmethod cria métodos que não precisam de self ou da classe. Eles funcionam como funções regulares, mas pertencem à classe.

Aqui está um exemplo de uma classe com métodos estáticos:

class MathHelper:
    @staticmethod
    def add(a, b):
        return a + b
    
    @staticmethod
    def is_even(number):
        return number % 2 == 0

Chame métodos estáticos usando o nome da classe:

result = MathHelper.add(5, 3)
print(result)

check = MathHelper.is_even(10)
print(check)

Você também pode chamá-los a partir de um objeto:

helper = MathHelper()
result2 = helper.add(2, 4)
print(result2)

Saída:

8
True
6

Métodos estáticos não acessam dados de instância ou de classe:

class Calculator:
    brand = "Python Calc"
    
    def __init__(self, owner):
        self.owner = owner
    
    @staticmethod
    def multiply(x, y):
        # Não é possível acessar self.owner ou Calculator.brand
        return x * y

Ponto Chave: Use @staticmethod quando você precisar de uma função que esteja relacionada à classe, mas não precise de acesso à instância (self) ou aos dados da classe. Nenhum parâmetro self é necessário.

Folha de consulta

O decorador @staticmethod cria métodos que não precisam de self ou da classe. Eles funcionam como funções regulares, mas pertencem à classe.

class MathHelper:
    @staticmethod
    def add(a, b):
        return a + b
    
    @staticmethod
    def is_even(number):
        return number % 2 == 0

Chame métodos estáticos usando o nome da classe:

result = MathHelper.add(5, 3)
check = MathHelper.is_even(10)

Você também pode chamá-los a partir de um objeto:

helper = MathHelper()
result2 = helper.add(2, 4)

Métodos estáticos não acessam dados da instância ou da classe - nenhum parâmetro self é necessário.

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Object Oriented Programming