🎉 SEMANA DO CONSUMIDOR

Últimos dias para comprar os cursos com 50% de desconto

Ver detalhes

Postado em em 3 de dezembro de 2024

Você já encontrou um Deprecation Warning em Python? Descubra o que ele significa e como lidar com esse aviso!

Se quiser pode acompanhar esse conteúdo em formato de vídeo ou pode acessar o nosso Canal do YouTube para mais vídeos!

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

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Deprecation Warning em Python – O que é, como usar e o que fazer?

Você já se deparou com o temido aviso de Deprecation Warning em Python ao usar uma função ou biblioteca?

Esse aviso pode gerar dúvidas, mas, na verdade, é uma ferramenta essencial para garantir a evolução dos códigos sem causar grandes problemas aos desenvolvedores.

Nesta aula, vou te mostrar detalhadamente o que significa deprecated em Python, os motivos por trás desse conceito, como identificar funções obsoletas e, o mais importante, como lidar com elas na prática.

Além disso, você aprenderá a implementar essa lógica nos seus próprios projetos em Python, garantindo que seu código se mantenha atualizado e funcional.

O que é uma Função Obsoleta? Função Deprecated?

No contexto da programação, deprecated refere-se a um recurso, função ou biblioteca que foi marcado como obsoleto. Isso significa que:

  • Ele ainda está disponível para uso, mas não é mais recomendado.
  • Em uma versão futura, será removido completamente.
  • Normalmente, já existe uma alternativa mais moderna e eficiente disponível.

Isso ocorre porque bibliotecas, linguagens e ferramentas são atualizadas constantemente para melhorar desempenho, segurança e funcionalidade. Nesse processo, algumas funções antigas precisam ser substituídas por alternativas mais eficazes e adequadas.

Uma função pode se tornar obsoleta por vários motivos. Aqui estão os principais:

  • Melhoria na eficiência: Uma nova função pode ser mais rápida ou consumir menos memória.
  • Manutenção do código: Funções antigas podem se tornar difíceis de manter ou integrar com novas funcionalidades.
  • Segurança: Funções desatualizadas podem representar riscos em determinados contextos.
  • Simplificação: Eliminar redundâncias no código facilita o aprendizado e promove boas práticas.

O que é o Deprecation Warning? – Identificando funções obsoletas

No Python, quando você utiliza uma função obsoleta (deprecated), o interpretador exibe uma mensagem chamada Deprecation Warning. Esse aviso alerta sobre a necessidade de atualizar o seu código.

Esse é um aviso muito importante, pois informa que o uso daquele recurso ou função não é mais recomendado e que ela será removida em versões futuras.

O Python utiliza esse mecanismo para, além de alertar sobre o uso de uma função obsoleta, indicar:

  • Qual é a função em questão.
  • A partir de qual versão ela será removida.
  • Qual alternativa deve ser utilizada no lugar dela.
Deprecation Warning

Como lidar com funções obsoletas

Quando você se deparar com um Deprecation Warning, isso não significa que a função deixará de funcionar imediatamente.

Porém, em futuras atualizações, ao atualizar a biblioteca ou ao tentar reutilizar o código, essa funcionalidade poderá não estar mais disponível.

Por isso, ao encontrar uma função deprecated, você pode tomar as seguintes ações:

  • Leia e compreenda o aviso: Sempre que encontrar um Deprecation Warning, leia a mensagem com atenção. Ela geralmente oferece informações valiosas, como os motivos para a obsolescência da função e a alternativa recomendada.
  • Atualize o código: Substitua a função obsoleta pela indicada no aviso. Isso evita problemas futuros ao atualizar o pacote do qual a função faz parte.
  • Planeje com antecedência: Se o seu projeto depende de bibliotecas externas, acompanhe regularmente as atualizações. Assim, você evita surpresas quando uma função obsoleta for finalmente removida.

Criando Avisos sobre Funções Obsoletas nos seus Projetos

Além de ser essencial ao trabalhar com bibliotecas e ferramentas externas, é igualmente importante saber lidar com funções obsoletas ao desenvolver sua própria biblioteca ou pacote em Python.

Ao criar uma biblioteca, você pode marcar funções como obsoletas para alertar outros desenvolvedores sobre alterações futuras planejadas.

Para isso, utilizaremos o decorator @deprecated em Python. Um decorator permite atribuir comportamentos adicionais a uma função. Caso você ainda não saiba como utilizá-los, confira nossa aula: Decorators no Python – Para que Serve o @ no Python?

A partir da versão 3.13 do Python, o decorator @deprecated foi integrado diretamente à biblioteca padrão warnings. Isso significa que, para criar uma função marcada como obsoleta, você usará:

from warnings import deprecated

Para versões anteriores ao Python 3.13, será necessário instalar a biblioteca deprecated. O processo de criação será o mesmo em ambos os casos. Caso sua versão do Python seja anterior a 3.13, execute o comando: pip install deprecated

pip install deprecated

Feita a instalação, vamos importar o deprecated.

Versão do Python 3.13 e posterior:

from warnings import deprecated

Versões anteriores ao Python 3.13:

from deprecated import deprecated

Depois de importar o decorator, você o aplicará diretamente antes da função que deseja marcar como obsoleta. No @deprecated, inclua uma mensagem personalizada com o aviso, que será exibido como um Deprecation Warning.

@deprecated("Essa função vai parar de existir a partir da versão 2.0, use a função calcular_percentual_imposto no lugar")
def calcular_taxa(faturamento: float) -> float:
    if faturamento < 1000:
        taxa = 0
    elif faturamento < 10000:
        taxa = 0.1
    elif faturamento < 500000:
        taxa = 0.15
    else:
        taxa = 0.2
    return taxa

def calcular_imposto(faturamento: float) -> float:
    taxa = calcular_taxa(faturamento)
    imposto = taxa * faturamento
    print(imposto)
    return imposto

def calcular_percentual_imposto(faturamento: float) -> float:
    if faturamento < 1000:
        taxa = 0
    elif faturamento < 10000:
        taxa = 0.1
    elif faturamento < 500000:
        taxa = 0.15
    else:
        taxa = 0.2
    return taxa

Perceba que, nesse caso, a função calcular_taxa se tornará obsoleta, e, em seu lugar, o usuário deverá utilizar outra função disponível, como calcular_percentual_imposto.

Caso a função calcular_taxa seja chamada, o Python exibirá no terminal um aviso informando que ela está obsoleta, junto com a mensagem personalizada que definimos:

from calculos import calcular_imposto, calcular_taxa, calcular_percentual_imposto

taxa = calcular_taxa(10000)
print(taxa)
Deprecation Warning da função taxa

Mesmo obsoleta, a função continua funcionando, realizando os cálculos normalmente. Porém, aparece no terminal uma mensagem aconselhando o usuário a migrar para outra função, pois a funcionalidade será removida em versões futuras.

Conclusão – Deprecation Warning em Python – O que é, como usar e o que fazer?

Entender como lidar com funções obsoletas no Python é essencial para garantir que seus projetos sejam sustentáveis e eficientes ao longo do tempo.

Seja ao atualizar bibliotecas existentes ou ao desenvolver suas próprias ferramentas, a prática de utilizar o deprecated e o Deprecation Warning é uma maneira organizada de evoluir o código, mantendo a compatibilidade e informando seus usuários sobre mudanças futuras de forma clara e responsável.

Hashtag Treinamentos

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


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

Posts mais recentes de Python

Posts mais recentes da Hashtag Treinamentos

Diego Monutti

Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.