gpt4 book ai didi

python - 条件变量初始化的pythonic方式是什么?

转载 作者:太空狗 更新时间:2023-10-29 17:28:57 27 4
gpt4 key购买 nike

由于 Python 的范围规则,一旦在范围内初始化的所有变量此后都可用。由于条件不引入新的范围,因此不一定需要其他语言的构造(例如在该条件之前初始化变量)。例如,我们可能有:

def foo(optionalvar = None):
# some processing, resulting in...
message = get_message()
if optionalvar is not None:
# some other processing, resulting in...
message = get_other_message()
# ... rest of function that uses message

或者,我们可以改为:

def foo(optionalvar = None):
if optionalvar is None:
# processing, resulting in...
message = get_message()
else:
# other processing, resulting in...
message = get_other_message()
# ... rest of function that uses message

当然,get_messageget_other_message 函数可能是很多行代码,基本上是无关紧要的(你可以假设程序在每条路径之后的状态是相同的);这里的目标是使 message 准备好在函数的这一部分之外使用。

我在其他问题中多次看到后一种构造,例如:

哪种结构更容易被接受?

最佳答案

Python 还有一个非常有用的 if 语法模式,您可以在这里使用

  message = get_other_message() if optional_var else get_message()

或者如果你想和None严格比较

  message = get_other_message() if optional_var is not None else get_message()

与您发布的示例 1) 不同,它不会不必要地调用 get_message()。

关于python - 条件变量初始化的pythonic方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8404856/

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