插话,因为我认为这种风格确实很重要。show(makePicture("picture.jpg"))
如果您从不重复使用"picture.jpg"
and ,我肯定会选择makePicture(…)
。原因是:
- 这是完全清晰的。
- 这使得代码阅读速度更快(无需花费比需要更多的时间)。
- 如果您使用变量,您就是在向阅读代码的人(包括您,在一段时间后)发送一个信号,即变量在代码中的某处被重用,并且最好将它们放入他们的工作(短期)内存中。我们的短期记忆是有限的(在 1960 年代,实验表明一个人一次能记住大约 7 条信息,而一些现代实验得出的数字更低)。因此,如果变量没有在任何地方重用,它们通常应该被删除,以免污染读者的短期记忆。
我认为您的问题非常有效,除非必要,否则您绝对不应该在此处使用中间变量(因为它们被重用,或者因为它们有助于在直接可理解的部分中破坏复杂的表达式)。这种做法将使您的代码更清晰易读,并让您养成良好的习惯。
PS:正如 Blender 所指出的,有许多嵌套的函数调用会使代码难以阅读。如果是这种情况,我建议考虑使用中间变量来保存有意义的信息,这样函数调用就不会包含太多的嵌套级别。
PPS:正如 pcurry 所指出的,嵌套函数调用也可以很容易地分解为多行,如果它们变得太长,这可以使代码像使用中间变量一样清晰易读,好处是不使用任何:
print_summary(
energy=solar_panel.energy_produced(time_of_the_day),
losses=solar_panel.loss_ratio(),
output_path="/tmp/out.txt"
)