【发布时间】:2011-04-03 05:08:27
【问题描述】:
我发现自己编写了很多类似于以下的代码:
ans = call_function()
if ans:
return ans
...
有没有一种干净的方法可以使它成为 1 或 2 班轮?这种范式的一个“例子”可能是
if x as call_function():
return x
【问题讨论】:
-
当
ans is None时你会返回什么? -
如果 ans 没有,那么你继续在函数中(一个示例应用程序是 memoization)
-
if ans将适用于任何“真实”值。请参阅docs.python.org/library/stdtypes.html#truth-value-testing,了解哪些值被视为错误。 -
这没有多大意义——除此之外: if....: return ... 属于两行。我们不喜欢 Python 世界中的单行代码。
-
是的,我明白了。问题是它是 3 行(我可以使用 2 行)。具体来说,如果 only 我要做的事情是返回它并在之后立即丢弃它,则没有理由在整个函数的范围内为 call_function() 赋值。跨度>