【发布时间】:2014-09-15 23:51:24
【问题描述】:
我想实现一个函数f,它返回两个值x和y给定输入w。该函数首先使用w 计算x 的值,然后使用x 的计算值计算y。但是,由于y 的计算成本很高,因此我希望该函数仅在需要该函数的结果时才计算其值。
也就是说,下面对f 的调用将不会执行计算y 的部分函数...
x, _ = f(w)
...下面的调用将执行它...
x, y = f(w)
可以这样定义函数吗?当然,一个直接的替代方法是将一个额外的布尔变量传递给f,它确定是否要计算y,但我想知道是否还有其他方法可以做到这一点。谢谢!
【问题讨论】:
-
正如 Marijn 所说,这是不可能的。此外, _ 实际上是一个变量:尝试在该语句之后执行
print _。