10

Zen of Python で、Tim Peters は次のように述べていFlat is better than nested.ます。私がそれを正しく理解していれば、Python では次のようになります。

<statement-1> if <condition> else <statement-2>

一般に、これよりも優先されます。

if <condition>:
    <statement-1>
else:
    <statement-2>

ただし、他の言語では、三項演算子をネストしないように言われ、代わりに従来のif...else. 私の質問は、これを使用する必要があるかどうかです。

(<statement-1> if <condition-1> else <statement-2>) if <condition-2> else <statement-3>

また

if <condition-2>:
    if <condition-1>:
        <statement-1>
    else:
        <statement-2>
else:
    <statement-3>

? 特にステートメントと条件が長く、最初の行を分割する必要がある場合は?

4

3 に答える 3

2

「フラットはネストよりも優れている」とは、モジュールの編成と、おそらくデータ構造に関するものであり、ソース コードではありません。たとえば、標準ライブラリはほとんどネストがほとんどない最上位モジュールとして存在します。

三項演算子をネストしないでください。回避できる場合は、まったく使用しないでください。複雑は複雑よりも優れています。:)

于 2013-10-28T22:25:33.970 に答える
1

私の理解では、これは「フラット」です。

if <condition_2> and <condition_1>:
  <statement_1>
elif <condition_2>:
  <statement_2>
else:
  <statement_3>

チェックする条件の順序は重要です。たとえば、<condition_2>チェックの最初の順序としてのみ配置すると、<statement_1>呼び出されることはありません。

于 2018-04-17T06:15:18.363 に答える