我有一个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()
如您所见,我使用do_default()
3次,我觉得有更好的方法。在其他语言中,这基本上是default
语句中的switch-case
,但是Python没有switch-case
。我想知道是否还有其他方法可以更优雅地/“ Pythonly”解决此问题? Or is the only way to use dicts or implement my own switch-case
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()
尽管您必须多次编写返回值
def wrapper(args):
if statement1:
if something:
return do_thing()
elif something_else:
if something_something:
return do_thing_something()
elif somethingg:
return do_thingg()
do_default()