Python 中跨多行的多变量赋值

Multivariable assignments across multiple lines in Python

我的代码中有一个函数 returns 6 个值。我正在尝试使用以下代码将其分配给 6 个变量。

epitaph_sequence_tokens, epitaph_tokenizer, epitaph_vocab_size, epitaph_padded_sequences, epitaph_X, epitaph_y, epitaph_sequence_length = prep_data(ep_data)

我只想将其分成两行,我认为只需在其中一个逗号后按 Enter 键即可。当我这样做时,我得到了一个意外的缩进错误,但如果我不缩进,它就不会把它当作同一个代码块来读取。我正在使用 Google CoLab 对此进行编码,是不是该环境的某些问题导致了这种情况?

您需要括号来启用隐式续行:

(epitaph_sequence_tokens,
 epitaph_tokenizer,
 epitaph_vocab_size,
 epitaph_padded_sequences,
 epitaph_X,
 epitaph_y,
 epitaph_sequence_length) = prep_data(ep_data)

(只需两行即可重新加入您喜欢的位置)。

没有括号,您需要使用反斜杠显式续行。

epitaph_sequence_tokens, \
epitaph_tokenizer, \
epitaph_vocab_size, \
epitaph_padded_sequences, \
epitaph_X, \
epitaph_y, \
epitaph_sequence_length = prep_data(ep_data)

否则,类似

epitaph_sequence_tokens,
epitaph_tokenizer,
epitaph_vocab_size,
epitaph_padded_sequences,
epitaph_X,
epitaph_y,
epitaph_sequence_length = prep_data(ep_data)

被视为 6 个表达式语句(每个表达式语句由一个 1 元组组成)后跟一个赋值语句。每个表达式语句都需要已定义名称才能创建指定的元组。