如何独立运行两个 if 语句? [复制]
Posted
技术标签:
【中文标题】如何独立运行两个 if 语句? [复制]【英文标题】:How to run two if statements independently? [duplicate] 【发布时间】:2020-10-25 08:55:46 【问题描述】:我有以下 if 语句:
if can_move == True:
return "ok"
else:
return "error"
if can_run
return "great"
else:
return "error"
我遇到的问题是如果运行 else 语句,那么另一个 if 语句不会执行。我希望它们同时执行。
【问题讨论】:
我认为这是函数的一部分?如果该示例显示了这一点,那将有所帮助。事实上,我们可以运行并查看结果,再加上您预期的结果。if the else statement is run, then the other if statement doesn't execute.
第一个 if 语句也是如此
或许if can_move: return "ok" elif can_run: return "great" else: return "error"
?
目前尚不清楚该函数应具有什么价值 return
— 请说明您想要的结果。
您希望return
做什么?在每种情况下,您究竟希望 return
的函数是什么?
【参考方案1】:
您可以创建 2 个单独的函数来处理它们。此外,如果你有布尔类型,你不应该返回任何字符串,除非它是绝对必要的。您应该制作 2 个单独的函数来处理移动,如果对应的值不是 True,则立即返回。
但如果你想这样做,你可以创建一个列表。
back = []
if can_move:
back.append('ok')
else:
back.append('error')
if can_run:
back.append('great')
else:
back.append('error')
return back
更简单的方法,但这将返回一个元组:
return ('ok' if can_move else 'error', 'great' if can_run else 'error')
【讨论】:
谢谢,如果我想在 else 语句下添加多个项目怎么办? 比如说我想做 if can_move: self.cases.update(key:value)) return "ok" 如果您想在返回前进行多次操作,建议您使用上面的第一个代码,并在返回前进行操作。而且,您可以创建新函数来控制这些操作,并从它们返回。这样你就不需要处理多个返回语句了。【参考方案2】:那是因为 python 函数只会返回一次。你可以让它一次返回多个东西:
msg = []
if can_move:
msg.append('ok')
else:
return "error"
if can_run:
msg.append('great')
else:
return "error"
return ', '.join(msg)
【讨论】:
以上是关于如何独立运行两个 if 语句? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在wildlfy9中,如何在独立模式下使用两个节点进行有状态的ejb会话复制(集群)