Что на самом деле является символом присваивания в Python? - PullRequest
0 голосов
/ 25 июня 2019

Большинство источников онлайн-вызова = (и + =, - = и т. Д.) Оператора присваивания (для python).Это имеет смысл в большинстве языков, но не в Python.Оператор принимает один или несколько операндов, возвращает значение и формирует выражение.Однако в python присваивание не является выражением, и присваивание не дает значения.Следовательно, = не может быть оператором.

Так что же это такое?В таком выражении, как x = 0, x - это идентификатор, 0 - числовой литерал, но я не знаю, что назвать «=».

Ответы [ 2 ]

1 голос
/ 25 июня 2019

Мне удалось найти правильный ответ в официальной документации Python. = и друзья считаются разделителями. источник: https://docs.python.org/3/reference/lexical_analysis.html#delimiters

Ссылка на документы Python для выражений не определяет = как оператор или как выражение выражения. источник: https://docs.python.org/3/reference/expressions.html

Тем не менее, он определяет операторы присваивания с их собственным производственным правилом с = явно включенным в правило. Источник: https://docs.python.org/3/reference/simple_stmts.html#assignment-statements

Таким образом, окончательный ответ заключается в том, что согласно официальным источникам это «разделитель».

0 голосов
/ 25 июня 2019

Символ присваивания = ведет себя как оператор, а не как оператор.Он поддерживает сцепление как часть синтаксиса, но не может использоваться как операция (например, a = b = 0, но не if a = b:).

Это похоже на часть in оператора for ... in ...:.То, что in является частью синтаксиса оператора, это не фактический оператор in.

...