在Python中避免使用长行代码

时间:2013-02-28 16:41:22

标签: python python-2.7 newline backslash

我尝试将代码保持在80个字符以内,因此很容易在我设置的标准窗口中并排查看。在这样做时,我有一个像这样的Python v2.7结构:

subseq_id_to_intervals_dict, subseq_id_to_ccid_formats_dict, subseq_id_to_min_max_count_dict = map_cases(opts,
                                            format_to_ccid_funcs,
                                            sys.stdin)

所以我把它分解为:

subseq_id_to_intervals_dict,
subseq_id_to_ccid_formats_dict,
subseq_id_to_min_max_count_dict = map_cases(opts,
                                            format_to_ccid_funcs,
                                            sys.stdin)

但这导致了错误

  

NameError:名称'subseq_id_to_intervals_dict'未定义

直到我添加了反斜杠:

subseq_id_to_intervals_dict,        \
subseq_id_to_ccid_formats_dict,     \
subseq_id_to_min_max_count_dict = map_cases(opts,
                                            format_to_ccid_funcs,
                                            sys.stdin)

为什么行尾的逗号不能充分告知Python理解语法而不会出错?如果没有反斜杠,有没有更简洁的方法呢?

1 个答案:

答案 0 :(得分:12)

您可以将作业的左侧括在括号中:

(subseq_id_to_intervals_dict,
 subseq_id_to_ccid_formats_dict,
 subseq_id_to_min_max_count_dict) = map_cases(opts,
                                            format_to_ccid_funcs,
                                            sys.stdin)

左侧已经是一个元组 - 括号只是意味着线的延续。这条线

subseq_id_to_intervals_dict,

并不意味着一个行继续,因为它是一个完整的语句 - 它是一个带有单个元素的元组。