Os paradigmas de Orientação a Objetos (OO) e Programação Funcional (FP), oferecem soluções eficazes para lidar com lógicas condicionais complexas e evitar longas cadeias de if e elif.
No paradigma OO, utilizamos o polimorfismo para lidar com isso. Através da herança ou composição, objetos de diferentes classes podem ser tratados de forma unificada, permitindo que um mesmo nome de método (como value(), por exemplo) tenha comportamentos distintos dependendo da classe do objeto. Assim, ao invés de checar manualmente com if e elif qual ação executar, o próprio objeto, baseado em sua classe, sabe qual ação tomar.
Já no paradigma FP, técnicas como composição de funções e curring nos permitem criar sequências de chamadas de funções de maneira elegante e concisa. Ao invés de usar condicionais para decidir qual função chamar, podemos simplesmente invocar a função apropriada diretamente, muitas vezes utilizando dicionários para mapear nomes de ações a funções específicas, sendo o exemplo apresentado uma forma rudimentar de fazer isso.
Em termos amplos, tanto o polimorfismo no paradigma OO quanto a composição e o curring no paradigma FP são abordagens valiosas que nos ajudam a simplificar e organizar nosso código, tornando-o mais legível, manutenível e extensível.
Python é uma linguagem multiparadigma, o que significa que ela suporta parcialmente tanto a Programação Orientada a Objetos quanto a Programação Funcional. A filosofia do Python enfatiza a legibilidade e a "forma Pythonica" de fazer as coisas. Ambas as abordagens, OO e FP, podem ser muito "Pythonicas" quando implementadas corretamente. Seja utilizando classes, herança e polimorfismo, ou utilizando funções de primeira classe, lambdas e curring, podemos escrever código elegante, conciso e eficiente em Python que não contenham nenhum if/else.