LINUX.ORG.RU

История изменений

Исправление Virtuos86, (текущая версия) :

Да, я невнимательно процитал любителя МС.

нет никакого множественного присваивания, это тупой сахар. Все так и происходит, по всей видимости, сначала возвращается массив, а потом интерпретатор под ковром раскидывает его значения по переменным.(тут вспоминаем мантру «явное лучше неявного»)

Я тебя удивлю, но в Питоне и простое присваивание это сахар для:

>>> locals().__setitem__("filequest", None)
>>> filequest
>>> `filequest`
'None'
>>> 

«явное лучше неявного»

При множественном присваивании слева объявляется кортеж из переменных (тип tuple), справа ему присваивается кортеж объектов или примитивных типов. Соответственно кортежи слева и справа синхронно распаковываются и в переменные отправляются ссылки на значения. Тот же механизм по сути используется при вызове функций при использовании оператора «*» для распаковки массивов или кортежей:

>>> def foo(a, b, c): print a, b, c
... 
>>> foo(*[1, 2, 3]) # точно такое множественное присваивание аргументам функции путем распаковки массива
1 2 3
>>> 
Почувствуй суть мощи дизайна Питона: одинаковые приемы и паттерны находят сразу несколько применений в языке и синтаксисе, за счет чего он и ощущается как консистентный, продуманный и логичный.

Исправление Virtuos86, :

Да, я невнимательно процитал любителя МС.

нет никакого множественного присваивания, это тупой сахар. Все так и происходит, по всей видимости, сначала возвращается массив, а потом интерпретатор под ковром раскидывает его значения по переменным.(тут вспоминаем мантру «явное лучше неявного»)

Я тебя удивлю, но в Питоне и простое присваивание это сахар для:

>>> locals().__setitem__("filequest", None)
>>> filequest
>>> `filequest`
'None'
>>> 

«явное лучше неявного»

При множественном присваивании слева объявляется кортеж из переменных (тип tuple), справа ему присваивается кортеж объектов или примитивных типов. Соответственно кортежи слева и справа синхронно распаковываются и в переменные отправляются ссылки на значения. Тот же механизм по сути используется при использовании оператора «*» при вызове функций для распаковки массивов или кортежей:

>>> def foo(a, b, c): print a, b, c
... 
>>> foo(*[1, 2, 3]) # точно такое множественное присваивание аргументам функции путем распаковки массива
1 2 3
>>> 
Почувствуй суть мощи дизайна Питона: одинаковые приемы и паттерны находят сразу несколько применений в языке и синтаксисе, за счет чего он и ощущается как консистентный, продуманный и логичный.

Исходная версия Virtuos86, :

Да, я невнимательно процитал любителя МС.

нет никакого множественного присваивания, это тупой сахар. Все так и происходит, по всей видимости, сначала возвращается массив, а потом интерпретатор под ковром раскидывает его значения по переменным.(тут вспоминаем мантру «явное лучше неявного»)

Я тебя удивлю, но в Питоне и простое присваивание это сахар для:

>>> locals().__setitem__("filequest", None)
>>> filequest
>>> `filequest`
'None'
>>> 

«явное лучше неявного»

При множественном присваивании слева объявляется кортеж из переменных (тип tuple), справа ему присваивается кортеж объектов или примитивных типов. Соответственно кортежи слева и справа синхронно распаковываются и в переменные отправляются ссылки на значения. Тот же механизм по сути используется при использовании оператора «*» при вызове функций для распаковки массивов или кортежей:

>>> locals().__setitem__("filequest", None)
>>> def foo(a, b, c): print a, b, c
... 
>>> foo(*[1, 2, 3]) # точно такое множественное присваивание аргументам функции путем распаковки массива
1 2 3
>>> 
Почувствуй суть мощи дизайна Питона: одинаковые приемы и паттерны находят сразу несколько применений в языке и синтаксисе, за счет чего он и ощущается как консистентный, продуманный и логичный.