Могу ли я использовать += для нескольких переменных в одной строке?
Сокращая свой код, я сокращал несколько объявлений переменных в одну строку.
##For example- going from-
Var1 =15
Var2 = 26
Var3 = 922
##To-
Var1, Var2, Var3 = 15, 26, 922
Однако, когда я попытался сделать то же самое с этим кодом,
User_Input += Master_Key[Input_ref]
Key += Master_Key[Key_ref]
Key2 += Master_Key[Key_2_Ref]
##Which looks like-
User_Input, Key, Key2 += Master_Key[Input_Ref], Master_Key[Key_Ref], Master_Key[Key_2_Ref]
Это выдает ошибку
SyntaxError: illegal expression for augmented assignment
Я прочитал соответствующую документацию по Python, но до сих пор не могу найти способ сократить этот конкретный фрагмент кода.
1 ответ
Решение
Нет, ты не можешь. Вы не можете использовать расширенное назначение вместе с несколькими целями.
Это можно увидеть в разделе " Расширенные операторы присваивания ", с которым вы связались:
augmented_assignment_stmt ::= augtarget augop (expression_list | yield_expression) augtarget ::= identifier | attributeref | subscription | slicing
augtarget
Правило допускает только одну цель. Сравните это с правиламиоператоров присваивания:
assignment_stmt ::= (target_list "=")+ (expression_list | yield_expression) target_list ::= target ("," target)* [","] target ::= identifier | "(" target_list ")" | "[" target_list "]" | attributeref | subscription | slicing
где у вас есть target_list
Правило для назначения.
Я бы не стал сокращать это вообще; попытка втиснуть расширенные назначения в одну строку не улучшает читаемость или понимание происходящего.