lte*_*e__ 2 python switch-statement python-3.x
我有一个具有多个级别的if-elif-else结构,但是最后一级else始终是同一条语句:
if statement1:
if something:
do_thing()
elif something_else:
if something_something:
do_thing_something()
elif somethingg:
do_thingg()
else:
do_default()
else:
do_default()
else:
do_default()
Run Code Online (Sandbox Code Playgroud)
如您所见,我使用了do_default()3次,并且感觉有更好的方法。这基本上是一个default在switch-case其他语言中的语句,但是Python没有switch-case。我想知道是否还有其他方法可以更优雅地/“ Pythonly”解决此问题?还是使用字典或实现我自己的唯一方法switch-case?
您可以尝试取消嵌套条件:
if statement1 and something:
do_thing()
elif statement1 and something_else and something_something:
do_thing()
elif statement1 and something_else and somethingg:
do_thingg()
else:
do_default()
Run Code Online (Sandbox Code Playgroud)