pythonはなぜ3つの演算子とswitchを必要としないのですか?
2420 ワード
3つの演算子(ternary operator)の場合、pythonはconditional expressionsで置き換えることができます.
x<5の場合?1:0は次のように実現できます.
注意:conditional expressionsはpython 2.5より前に導入されたため、上記のコードは2.5以降のバージョンにのみ適用されます.
2.5以前のバージョンでは、次のような形式で使用できます.
switchではdictionaryで完全に実現できますが、次の例を見てみましょう.
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)()