Коммутативен ли Python? Меняется ли что-то от перестановки слагаемых?

Коммутативность относится к операции над конкретными типами, а не к языку целиком. Для обычных целых чисел a + b равно b + a, но для строк порядок меняет результат.

Короткий ответ

Что ответить на собеседовании

Коммутативность относится к операции над конкретными типами, а не к языку целиком. Для обычных целых чисел a + b равно b + a, но для строк порядок меняет результат.

Подробный разбор

Ответ с пояснениями

Коммутативность относится к операции над конкретными типами, а не к языку целиком. Для обычных целых чисел a + b равно b + a, но для строк порядок меняет результат.

'ab' + 'cd' даёт 'abcd', обратный порядок — 'cdab'. Пользовательские классы могут определять __add__ и __radd__ с любой допустимой семантикой.

Не путайте коммутативность с ассоциативностью: для float изменение группировки (a+b)+c и a+(b+c) может менять результат из-за округления. Кроме того, перестановка выражений с побочными эффектами меняет порядок их вычисления. Поэтому утверждение «слагаемые всегда можно переставить» справедливо лишь при заданных типах и условиях.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее