Коммутативность относится к операции над конкретными типами, а не к языку целиком. Для обычных целых чисел a + b равно b + a, но для строк порядок меняет результат.
Коммутативен ли Python? Меняется ли что-то от перестановки слагаемых?
Коммутативность относится к операции над конкретными типами, а не к языку целиком. Для обычных целых чисел a + b равно b + a, но для строк порядок меняет результат.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Коммутативность относится к операции над конкретными типами, а не к языку целиком. Для обычных целых чисел a + b равно b + a, но для строк порядок меняет результат.
'ab' + 'cd' даёт 'abcd', обратный порядок — 'cdab'. Пользовательские классы могут определять __add__ и __radd__ с любой допустимой семантикой.
Не путайте коммутативность с ассоциативностью: для float изменение группировки (a+b)+c и a+(b+c) может менять результат из-за округления. Кроме того, перестановка выражений с побочными эффектами меняет порядок их вычисления. Поэтому утверждение «слагаемые всегда можно переставить» справедливо лишь при заданных типах и условиях.