1. Nessa aula vamos aprender a utilizar o padrão de projetos Decorator em Python.
  2. Um decorator permite adicionar um comportamento a um objeto já existente em tempo de execução, ou seja, agrega dinamicamente responsabilidades adicionais a um objeto
  3. Para praticar, vamos criar o arquivo decorator.py.
def my_decorator(func):
    def wrapper():
        print("Antes de executar a função")
        func()
        print("Depois de executar a função")
    return wrapper

def uppercase_decorator(function):
    def wrapper():
        func = function()
        make_uppercase = func.upper()
        return make_uppercase

    return wrapper

def split_string(function):
    def wrapper():
        func = function()
        splitted_string = func.split()
        return splitted_string

    return wrapper
  1. Acima criamos três decorators. Para utilizá-los em nosso projeto, vamos criar o arquivo 15-decorators.py
from decorators import my_decorator, uppercase_decorator, split_string

# Exemplo 1 - 
@my_decorator
def my_function():
    print("Dentro da função")

my_function()

# Exemplo 2 - Deixando uma string em maiúscula

@uppercase_decorator
def say_hi():
    return 'Olá mundo'

print(say_hi())

# Exemplo 3 - Múltiplos Decorators
@split_string
@uppercase_decorator
def example():
    return "Aprendendo Python e criando decorators"

print(example())
  1. Para executar o arquivo, execute o comando python .\15-decorators.py.

Img1.png