那是因为您返回的值是
q在您更改
qfinally块中的值之前进行评估的。您返回
q,它评估了它的价值;然后您
q在
finally块中进行了更改,但这并不影响加载的值;然后使用评估值完成返回。
不要编写像这样的棘手代码。如果它使编写它的人感到困惑,请想象一下它将导致下一个人的问题,如果您不在别的地方,它将在几年之后。

那是因为您返回的值是
q在您更改
qfinally块中的值之前进行评估的。您返回
q,它评估了它的价值;然后您
q在
finally块中进行了更改,但这并不影响加载的值;然后使用评估值完成返回。
不要编写像这样的棘手代码。如果它使编写它的人感到困惑,请想象一下它将导致下一个人的问题,如果您不在别的地方,它将在几年之后。