pythonはなぜ3つの演算子とswitchを必要としないのですか?

2420 ワード

3つの演算子(ternary operator)の場合、pythonはconditional expressionsで置き換えることができます.
x<5の場合?1:0は次のように実現できます.

  
1 if x < 5 else 0

注意:conditional expressionsはpython 2.5より前に導入されたため、上記のコードは2.5以降のバージョンにのみ適用されます.
2.5以前のバージョンでは、次のような形式で使用できます.

  
X < 5 and 1 or 0

switchではdictionaryで完全に実現できますが、次の例を見てみましょう.

  
>>> def switch(choice):
return dict(enumerate(range( 4 )))[choice]

>>> switch( 1 )
1
>>> switch(0)
0


values = {
    value1: do_something1,
    value2: do_something2,
    ...
    valueN: do_somethingN,
    }

values.get(var, do_default_something)()