Blog

Postado em em 20 de dezembro de 2021

Decorators no Python – Para que Serve o @ no Python?

Você sabe o que são decorators no Python? Na aula de hoje eu vou te mostrar o que são e para que eles servem inclusive o símbolo @.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Decorators no Python

Você sabe o que são os decorators no Python? Hoje eu quero te mostrar para que serve o @ no Python e o que ele faz dentro da linguagem de programação.

Como vamos trabalhar com o @, nós vamos utilizar a parte de criação de sites no Python para que você possa entender de fato para que serve esse símbolo!

Para que Serve o @ no Python

Como vamos abordar a criação de sites vamos utilizar o Flask no Python (que é um framework para criação de sites).

Para que servem os decorators no Python? Ele vai atribuir uma nova funcionalidade para a função que está logo abaixo a ele.

from flask import Flask

app = Flask (__name__)

@app.route('/home')
def homepage():
	return 'Essa é minha HomePage'

@app.route('/contatos')
def contatos():
	return "Esses são os meus contatos"

No caso do flask, essa nova funcionalidade é em qual link essa informação vai aparecer. Então na página /home é que vamos ter o texto “Essa é minha HomePage”.

Então esse @ é o que simboliza esses decorators Python que vão trazer uma nova funcionalidade para uma função.

É claro que no flask você não vai ter somente o @app.route como decorator, esse é apenas um deles para que você entenda que ele dá uma nova funcionalidade a função após a chamada dele.

Geralmente nós vamos encontrar esses decorators Python em frameworks, que é como se fosse um grande conjunto de bibliotecas que foi criado para uma função específica.

Para essa parte de criação de sites nós temos 2 grandes frameworks que são o Flask e o Django. E esses dois frameworks utilizam decorators.

Então o que são os decorators no Python? Eles nada mais são do que uma função que atribui uma nova funcionalidade para outra função.

Isso vai ser mais bem explicado no próximo exemplo, onde nós vamos utilizar a biblioteca requests.

Nesse exemplo nós vamos criar um decorator no Python para calcular o tempo que uma função é executada.

import requests
import time

def calcular_tempo(funcao):
    def wrapper():
        tempo_inicial = time.time()
        funcao()
        tempo_final = time.time()
        print(f"Dutação foi de {tempo_final-tempo_inicial} segundos")
    return wrapper

@calcular_tempo
def pegar_cotacao_dolar():
    link = f"https://economia.awesomeapi.com.br/last/USD-BRL"
    requisicao = requests.get(link)
    requisicao = requisicao.json()
    print(requisicao['USDBRL']['bid'])

pegar_cotacao_dolar()

Esse é um código que nós já ensinamos na aula de Como Atualizar Cotação do Dólar em Tempo Real.

Aqui nós estamos utilizando esse código para obter a cotação do dólar, mas estamos criando o nosso decorator que vai calcular o tempo de execução do nosso código.

Então sempre que você colocar o decorator @calcular_tempo ele vai funcionar como colocamos na função, então vai calcular o tempo inicial, vai rodar a função e depois vai calcular o tempo final.

Dessa forma podemos subtrair o tempo final do inicial para saber o tempo de execução da função.

Esse foi um exemplo simples da criação de um decorator no Python, mas agora você já sabe como ele funciona e para que ele serve, então você vai poder criar os seus próprios decorators para te auxiliar nos seus próximos códigos!

Além do que você aprendeu aqui, vou deixar mais 3 posts para que você possa aprofundar seu conhecimento sobre decorators.

Obs.: Esses posts vão te auxiliar com exemplos diferentes do que mostramos aqui na aula, então pode ser bem interessante para complementar seus conhecimentos no assunto e até ver outras formas de utilizar os decorators no Python! É interessante ver mais de uma fonte até para ver essa questão de diferentes exemplos e diferentes abordagens!

Não é importante aprender esses novos conteúdos só para utilizar nos seus códigos, é muito importante também, para que você consiga entender os outros códigos.

Seja no seu trabalho ou até mesmo quando estiver estudando Python. É sempre importante que você conheça outros recursos e outras maneiras de resolver um mesmo problema, pois as vezes pode ter que utilizar ou vai ver esses exemplos durante os seus estudos.

Vale lembrar que você também pode assistir o vídeo sobre esse assunto no nosso canal do YouTube, pode acessar o vídeo no início dessa publicação.

Se ficar qualquer dúvida vale a pena assistir o vídeo e acessar os links que deixei como sugestão!

Conclusão – Decorators no Python

Nessa aula eu te mostrei o que são os decorators Python, como ele funciona e como você pode fazer para criar o seu próprio decorator.

Agora você já sabe do que se trata esse símbolo @ e sabe como eles vão funcionar dentro do seu código.

Claro que você além de saber utilizá-los vai poder criar os seus próprios decorators no Python caso seja necessário no seu projeto.

E lembre-se, de que você pode ver esses novos recursos em outros códigos, em exemplos, nos seus estudos e até mesmo onde trabalha, então é bom saber como funciona e qual a sua finalidade!

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador