Тут один умный парень посоветовал интересную библиотеку multipledispatch. Данная волшебная штука позволяет за одним методом (или функцией) скрывать сразу несколько, среди которых правильный выбирается на основе типа входных значений. Например, можно определить функцию для сложения двух элементов, задав разную логику для сложения чисел, строк и т.д.