2013-02-28 5 views
6

自分のコードを80文字以内に収めておき、設定した標準的なウィンドウに並べて見るのは簡単です。これを行うには、私はPythonのV2.7は次のように構築していますPythonで長いコード行を避ける

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: name 'subseq_id_to_intervals_dict' is not defined

を引き起こしました追加されたバックスラッシュ:

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に通知せず、エラーを出さないということですか?バックスラッシュなしでこれを行うためのクリーンな方法はありますか?

+2

PEP8による推奨方法は、括弧を追加して暗黙の行継続を使用することです。 – geoffspear

+0

'foo、'は完全なステートメント(単一の要素を持つタプル)であることを忘れないでください。 @DavidRobinsonが提案したように、LHSのまわりにカッコを入れることができます。そのため、コンマを使って行を分割することができれば、Pythonはあいまいになります(1要素タプルを意味するのか、それとももっと処理する必要がありますか)。 – FatalError

答えて

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) 

左側はすでに括弧だけの行継続を意味するものではありtuple-です。行

subseq_id_to_intervals_dict, 

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

関連する問題