gpt4 book ai didi

python - 在长 if-elseif-else 语句中使用 return (Python)

转载 作者:太空狗 更新时间:2023-10-29 21:14:15 24 4
gpt4 key购买 nike

我在示例中使用 Python,但我的问题是指一般的编程语言。

def some_function(eggs):
if eggs == 1:
do_something_1()
elif eggs == 2:
do_something_2()
elif eggs == 3:
do_something_3()
else:
do_error()
return
do_something_4()
do_something_5()
do_something_6()

(这只是一个例子。我的函数不会被称为do_something_x。)

像这样在 else 中放一个 return 会是一个糟糕的编程习惯吗?放上去会不会更好?

do_something_4()
do_something_5()
do_something_6()

在每个 if/elif 中?

最佳答案

我在您的代码中看到的主要问题是错误案例隐藏在函数体的一半以上。它使代码难以阅读。由于您正在做的是验证函数的参数,因此您应该首先执行此操作。

在无效参数的情况下,我的偏好是引发适当的异常,例如 ValueError。在不知道您的函数做什么或 do_error 做什么的情况下,很难绝对肯定地说这适用于您的情况。但一般来说,得到不正确的参数不是函数可以从中恢复的。来电者给出了论据;因此,让调用者承担从该错误中恢复的责任。

另外,这里有一个习语可以用来避免长长的 elif 列表:

funs = {1: do_something_1,
2: do_something_2,
3: do_something_3}
funs[eggs]()

关于python - 在长 if-elseif-else 语句中使用 return (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6796523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com