mudar caso em python não funciona; precisa de outro padrão
Eu preciso de uma ajuda com um código aqui, eu queria implementar o padrão de caso de opção em python, assim como algum tutorial disse, eu posso usar um dicionário para isso, mas aqui está o meu problema:
# type can be either create or update or ..
message = { 'create':msg(some_data),
'update':msg(other_data)
# can have more
}
return message(type)
mas não está funcionando para mim porque some_data ou other_data pode ser None (isso gera um erro se não for nenhum) e a função msg precisa ser simples (não quero colocar alguma condição nela).
o problema aqui é que a função msg () é executada a cada vez para preencher o ditado, diferentemente do padrão de caixa de seleção, que geralmente em outra linguagem de programação não executa o código nocase
a menos que seja uma partida.
Existe uma outra maneira de fazer isso ou eu só preciso fazer se elif ...
Atualizar: obrigado por todas as respostas, mas na verdade é mais assim
message = { 'create': "blabla %s" % msg(some_data),
'update': "blabla %s" % msg(other_data)
'delete': "blabla %s" % diff(other_data, some_data)
}
então o lambda não funciona aqui e não é chamada a mesma função, por isso é mais como um caso de comutação real que eu preciso, e talvez eu precise pensar em outro padrão.