gpt4 book ai didi

Python:If Condition then skip to return

转载 作者:太空狗 更新时间:2023-10-30 02:41:15 25 4
gpt4 key购买 nike

我想知道是否有一种好的方法可以告诉 python 解释器跳到函数的下一个/最后一个 return 语句

让我们假设以下虚拟代码:

def foo(bar):
do(stuff)

if condition:
do(stuff)
if condition2:
do(stuff)
if condition3:
...

return (...)

有时这会变得非常困惑,因为我无法链接许多条件,因为它们依赖于上面的 block do(stuff)。我现在可以这样做:

def foo(bar):
do(stuff)

if not condition: return (...)
do(stuff)
if not condition2: return (...)
do(stuff)
if not condition3: return (...)
...

return (...)

它看起来没那么乱,但我不得不一次又一次地重复 return 语句,这有点烦人,如果它是一个长元组或类似的,它看起来更糟。完美的解决方案是说“如果没有条件,跳到最后的返回语句”。这有可能吗?

编辑:明确说明:我的目标是提高可读性,同时避免性能下降

最佳答案

我想我会创建一个函数列表(我假设您示例中的所有 do(stuff) 实际上都是不同的函数)。然后你可以使用 for 循环:

list_of_funcs = [func1, func2, func3]
for func in list_of_funcs:
func(stuff)
if not condition:
break
return (...)

如果条件不同,那么您还可以创建条件列表(这将是返回 TrueFalse 的函数列表),然后您可以使用zip 以下列方式:

list_of_funcs = [func1, func2, func3]
list_of_conditions = [cond1, cond2, cond3]
for func, cond in zip(list_of_funcs, list_of_conditions):
func(stuff)
if not cond():
break
return (...)

这样,无论您有多少函数和条件,您的实际代码都保持相同的长度和相同的缩进级别。

关于Python:If Condition then skip to return,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39897333/

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