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 == 0Chame 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
6Mé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 * yPonto 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 == 0Chame 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.
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
1Fundamentos de POO
Arquivos ExternosIntrodução à POOClasses vs ObjetosO Parâmetro selfMétodosAtributosMétodo Construtor (__init__)Recapitulação - Calculadora Simples4Herança
Herança BásicaA Função super()Sobrescrita de MétodoHerança MúltiplaOrdem de Resolução de MétodosRecapitulação - Hierarquia de Funcionários7Métodos Especiais
Introdução aos Métodos MágicosSobrecarga de OperadoresMétodos Mágicos de ContêinerRecapitulação - Lista Personalizada10Padrões de Projeto Parte 1
Introdução a Padrões de ProjetoPadrão SingletonPadrão FactoryPadrão ObserverPadrão Strategy2Decoradores
Introdução aos DecoradoresDecorador de PropriedadeDecorador de Método EstáticoDecorador de Método de Classe5Polimorfismo
Sobrescrita de Método RevisitadaDuck TypingClasses e Métodos AbstratosDesign de InterfacesRecapitulação - Calculadora de Formas8Conceitos Avançados de POO
Composição vs HerançaMixinsMétodos Estáticos e de ClasseDecoradores de ClasseGerenciadores de Contexto11Padrões de Projeto Parte 2
Padrão CommandPadrão AdapterPadrão DecoratorPadrão Template MethodPadrão StatePadrão Composite3Propriedades de Classe
Variáveis de Instância vs de ClasseDecoradores de PropriedadeAtributos PrivadosRecapitulação - Gerenciador de Conta Bancária6Encapsulamento
Membros Públicos, Protegidos e PrivadosModificadores de AcessoOcultação de InformaçãoProperty Decorators AvançadosRecapitulação - Sistema de Registro de Alunos12Projeto: Gerenciamento de Biblioteca
Visão Geral do ProjetoClasses Livro e Usuário