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.
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
Postar um comentário