Почему присваивание Python не возвращает значение?

Почему присвоение Python является выражением, а не выражением? Если бы это было выражение, которое возвращает значение правой части присваивания, в некоторых случаях это позволило бы использовать гораздо менее подробный код. Есть ли какие-то проблемы, которые я не вижу?

Например:

# lst is some sequence
# X is come class
x = X()
lst.append(x)

можно было переписать как:

lst.append(x = X())

Ну, если быть точным, вышеуказанное не сработает, потому что x будет рассматривается как аргумент ключевого слова. Но другая пара скобок (или другой символ для аргументов ключевого слова) решила бы эту проблему.

46
задан max 24 March 2014 в 04:09
поделиться