O que acha dessa forma?
action = 'read'
recieveActionsShort = lambda action: {'create': 1, 'read': 2, 'update': 3, 'delete': 4}.get(action, None)
value = recieveActionsShort(action)
print(value)
Nesse caso para poucos valores fica até bom colocar em apenas 1 linha usando função lambda do python. Mas acredito que perde na legibilidade.
Acho que fica menos legível, e continua com a desvantagem de gerar o dicionário toda hora.
Se quer mesmo usar o dicionário, poderia criar apenas uma vez. E aí pode até usar a opção que eu fiz, de passá-lo como parâmetro da função. Ou a função sempre usa o mesmo dicionário (usando global
, que eu não gosto muito).
Na verdade, se a função faz só isso (apenas pega um dos valores), acho até que ela é desnecessária, use logo o dicionário e pronto. Só vejo necessidade da função se ela fizer algo a mais.