Чтобы вернуть несколько параметров, вы возвращаете один объект, который содержит оба этих параметра.
public MyResult GetResult(x)
{
return new MyResult { Squared = Math.Pow(x,2), Cubed = Math.Pow(x,3) };
}
Для некоторых языков вы можете создавать анонимные типы на лету. Для других вы должны указать возвращаемый объект как конкретный класс. Одно наблюдение с ОО - ты заканчиваешь множеством маленьких уроков.
Синтаксические тонкости python (см. Ответ @ Cowan) зависят от дизайнера языка. Компилятор / среда выполнения может создать анонимный класс для хранения результата для вас, даже в строго типизированной среде, такой как .net CLR.
Да, это может быть легче читать при некоторых обстоятельствах, и да, это было бы хорошо. Тем не менее, если вы прочитаете блог Эрика Липперта , вы будете часто читать диалоги и слышать, как он рассказывает о том, как можно реализовать много хороших функций, но в каждой функции много усилий и некоторые вещи просто не делают разрез, потому что в конце концов они не могут быть оправданы.