Python: Duas formas de criar um Switch Case


Todos nós que trabalhamos na área de desenvolvimento sabemos que nas linguagens mais populares temos como opção utilizar a condicional switch/case, mas para quem trabalha com Python sabe-se que isso não existe na linguagem.

Como forma de contornar o problema irei demonstrar duas formas para você poder implementar em seu código.

Atenção:
Na versão 3.10 do Python foi implementado o Pattern Matching que tem como objetivo ser igual ou melhor que o switch case.

1- Utilizando dicionário (object literals)
O que iremos fazer nesse procedimento é criar uma variável do tipo dicionário e utilizando a função get iremos capturar um valor do dicionário.

Segue o exemplo:
Vamos entender o que está escrito nesse código?

Nas linhas 1, 4 e 7 estamos apenas criando funções que iram dar um print na tela assim que elas forem chamadas.

Na linha 11 criamos uma variável do tipo dicionário e nela definimos a key como sendo a nossa condicional do case e o valor sendo as funções criadas anteriormente. Vale lembrar que nesse momento ainda não executamos as funções, elas são executadas quando colocamos () na frente delas.

A linha 16 é o ponto chave de tudo. Nela utilizamos a função get para poder capturar um valor do dicionário.

A função get que é padrão do python, recebe dois valores, sendo o primeiro como obrigatório e o segundo opcional.

Nesse caso o primeiro parâmetro será o nosso case e como exemplo foi utilizado uma string com o valor 1. Notamos que no nosso dicionário existe uma key com esse valor e com isso quando a função get for executada ela irá capturar o valor dessa key, que é a função de nome function1.

Nesse momento na variável case temos a instância da função que se chama function1 e agora resta nos apenas executá-la.

Observação: Se no dicionário não existisse algum valor informado no primeiro parâmetro do get automaticamente a instância da função com nome default seria capturada, visto que setamos ela no segundo parâmetro da função get.

Por fim, na linha 17 executamos a função que capturamos na linha 16.

2- Utilizando if/else
O que iremos fazer nesse momento é criar uma função que irá receber um valor x e logo em seguida usaremos a condicional if/else para encontrar o valor correto.

Segue o exemplo:
Vamos entender o que está escrito nesse código?

Nas linhas 1, 4 e 7 estamos apenas criando funções que iram dar um print na tela assim que elas forem chamadas.

Na linha 10 criamos uma função que irá receber um valor que será o nosso case.

Na linha 19 iremos chamar a função switch passando um valor e a mesma irá nos retornar a instância de outra função.

Por fim, na linha 20 executamos a função que capturamos na linha 19.

Comentários

Postagens mais visitadas deste blog

pgAdmin 4: Configurando um server do Postgres

Oh My Zsh: Melhorando a produtividade do seu terminal