6

私は自分のコードを 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 に十分な情報を与えず、構文を理解してエラーを発生させないのはなぜですか? バックスラッシュなしでこれを行うよりクリーンな方法はありますか?

4

1 に答える 1

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,

これは完全なステートメントであるため、行の継続を意味しません。単一の要素を持つタプルです。

于 2013-02-28T16:42:50.960 に答える