Olá, caro leitor! Seja muito bem-vindo a mais uma edição da "Dicas Pythonicas".
No pyPRO, estamos sempre buscando formas de tornar seu código mais robusto e seguro.
Hoje, vamos mostrar como limitar as opções de parâmetros de uma função em Python. Isso é útil quando queremos que um parâmetro aceite apenas alguns valores específicos, evitando entradas indesejadas. Uma maneira poderosa de fazer isso é utilizando a classe Literal do módulo typing, que faz parte da biblioteca padrão do Python.
Veja o exemplo:
from typing import Literal
def muda_fundo(nova_cor: Literal["azul", "vermelha", "verde"]):
if nova_cor.lower() == 'azul':
print("A cor de fundo agora é AZUL!")
elif nova_cor.lower() == 'vermelha':
print("A cor de fundo agora é VERMELHA!")
elif nova_cor.lower() == 'verde':
print("A cor de fundo agora é VERDE!")
else:
raise ValueError(f"A cor {nova_cor} não pode ser usada!!")
muda_fundo("preta")
Como Funciona?
- Importação de Literal: Literal faz parte do módulo typing e é usado para definir opções limitadas de valores que um parâmetro pode aceitar. Isso é especialmente útil para garantir que uma função receba apenas determinados valores, como "azul", "vermelha" ou "verde" neste exemplo.
- Definindo as Opções: nova_cor: Literal["azul", "vermelha", "verde"] limita nova_cor para que só possa receber essas três cores. Se qualquer outro valor for passado, o código gera um erro.
- Tratamento de Erro: Caso o valor não esteja entre as opções permitidas, o programa levanta uma exceção ValueError, garantindo que o código não execute de forma inesperada.
Benefícios
- Segurança: Garantir que apenas valores específicos sejam aceitos evita bugs e comportamentos inesperados no seu código.
- Legibilidade: O uso de Literal torna a função mais fácil de entender e documenta claramente as opções que são aceitas.
Espero que esta dica te ajude a escrever funções mais seguras e com parâmetros controlados. Fique atento à próxima edição, onde continuaremos a explorar funcionalidades que podem tornar seu código mais eficiente e profissional!
Um forte abraço,
Prof. Dr. Dilermando Piva Jr.
Idealizador do pyPRO
Visite: https://pypro.com.br para mais informações sobre Python, Ciência de Dados e Git/GitHub.