Python: Decoradores

Esta documentação faz parte do guia Aprender Python. Consulte o guia completo aqui: Um guia abrangente de Python.

👋 Bem-vindo à documentação da Stackhero!

A Stackhero disponibiliza uma solução Python cloud pronta a usar, concebida para simplificar o seu processo de deployment:

  • Implemente a sua aplicação em produção em segundos com um simples git push.
  • Utilize o seu próprio domínio, com configuração automática de certificado HTTPS para ligações seguras geridas por si.
  • Conte com backups automáticos, atualizações com um clique e preços previsíveis, para que se possa focar no seu código e não na gestão da infraestrutura.
  • Beneficie de elevada performance e segurança numa infraestrutura privada e dedicada. O seu ambiente está isolado e protegido.

Poupe tempo e simplifique o seu workflow: pode ter o seu código a funcionar com o alojamento Python cloud da Stackhero em apenas 5 minutos.

Os decoradores permitem estender ou modificar o comportamento de funções ou classes sem alterar o seu código-fonte. Eles envolvem outra função e adicionam alguma funcionalidade antes ou depois da execução da função envolvida.

def decorator_function(func):
  def wrapper(*args, **kwargs):
    # fazer algo antes de chamar a função
    result = func(*args, **kwargs)
    # fazer algo depois de chamar a função
    return result
  return wrapper

@decorator_function
def my_function():
  # fazer algo

Exemplos:

def greet_decorator(func):
  def wrapper(name):
    return "Hello, " + func(name) + "!"
  return wrapper

@greet_decorator
def get_name(name):
  return name

print(get_name("John"))  # Saída: Hello, John!