if-else表达式可以是' return'?
的参数以下是我尝试做的一个例子:
public void selectItem(int position) {
Intent intent = null;
switch(position) {
case 0:
intent = new Intent(this, Activity_0.class);
break;
case 1:
intent = new Intent(this, Activity_1.class);
break;
...
case 4:
intent = new Intent(this, Activity_4.class);
break;
default :
intent = new Intent(this, Activity_0.class); // Activity_0 as default
break;
}
startActivity(intent);
我可以写成:
return m +
if a:
x
elif b:
y
else c:
z
答案 0 :(得分:3)
好吧,您可以使用Python的三元方法,例如:
return m + (x if a else y if b else z)
但可能更易于执行以下操作:
if a: return m + x
if b: return m + y
return m + z
顺便说一句,
else c:
并不是真正明智的代码:如果有条件,则使用if/elif
; 默认<else
/ em>动作(无条件)。
例如,就您在评论中发布的代码而言,您可以选择简洁但仍然自我记录:
def rental_car_costs(days):
basecost = days * 40
discount = 50 if days >= 7 else 20 if days >= 3 else 0
return basecost - discount