我可以在一行的多个变量上使用+ =吗?

The*_*ray 4 python variables reference addition augmented-assignment

在缩短我的代码的同时,我将一些变量声明减少到一行 -

##For example- going from-
Var1 =15
Var2 = 26
Var3 = 922

##To-
Var1, Var2, Var3 = 15, 26, 922
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试对此代码做同样的事情时 -

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]
Run Code Online (Sandbox Code Playgroud)

这会引发错误

SyntaxError: illegal expression for augmented assignment
Run Code Online (Sandbox Code Playgroud)

我已经阅读了相关的Python文档,但我仍然找不到缩短这一特定代码的方法.

Mar*_*ers 9

你不能.您不能将增强分配与多个目标一起使用.

您可以在链接到的扩充分配语句部分中看到此内容:

augmented_assignment_stmt ::=  augtarget augop (expression_list | yield_expression)
augtarget                 ::=  identifier | attributeref | subscription | slicing
Run Code Online (Sandbox Code Playgroud)

augtarget规则仅允许一个目标.将此与Assignment语句规则进行比较:

assignment_stmt ::=  (target_list "=")+ (expression_list | yield_expression)
target_list     ::=  target ("," target)* [","]
target          ::=  identifier
                     | "(" target_list ")"
                     | "[" target_list "]"
                     | attributeref
                     | subscription
                     | slicing
Run Code Online (Sandbox Code Playgroud)

你有一个target_list规则要分配给哪里.

我根本不会试图缩短它; 试图将增强的任务压缩到一行上并不会提高可读性或对正在发生的事情的理解.