这可能是一个非常愚蠢的问题,但无论如何我都会问。
有两种方法可以展示此代码:
file = "picture.jpg"
pic = makePicture(file)
show(pic)
或
show(makePicture("picture.jpg"))
这只是一个如何缩写的例子,我已经看到它与其他功能。但是当我需要这样做时,它总是让我感到困惑。结合这样的功能有没有经验法则?在我看来,你在向前选择函数并以文件或选择文件的函数(即pickAFile()
)结束。听起来不错吗?
请保持解释简单,聪明的狗可以理解。
答案 0 :(得分:4)
Chiming in,因为我认为这种风格很重要。如果您不重复使用show(makePicture("picture.jpg"))
和"picture.jpg"
,我肯定会选择makePicture(…)
。原因是:
我认为你的问题是非常有效的, 肯定不会在这里使用中间变量,除非它们必要(因为它们被重用,或者因为它们有助于破解直接可理解的部分中的复杂表达式)。这种做法将使您的代码更清晰,并会给您良好的习惯。
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"
)
答案 1 :(得分:1)
当你写:
pic = makePicture(file)
您以makePicture
作为参数调用file
,并将该函数的输出放入变量pic
。如果您使用pic
所做的一切都将其用作show
的参数,那么您根本不需要使用pic
。这只是一个临时变量。您的第二个示例就是这样,并将makePicture(file)
的输出作为第一个参数直接传递给show
,而不使用像pic
这样的临时变量。
现在,如果您在其他地方使用pic
,那么实际上无法绕过它。如果您不重复使用临时变量,请选择您喜欢的任何方式。只要确保它是可读的。
答案 2 :(得分:1)
这完全取决于程序员,如果您计划制作更大的程序,您可能希望将语句分开,以便您可以返回该文件。
如果您正在与一个程序员团队合作,那么可读性总是很重要,但如果这只是您自己做的事情,那就做最舒适的事情。
答案 3 :(得分:0)
show(makePicture("picture.jpg"))
比较长版本更具可读性。我还发现,尝试消除中间变量通常会产生更好的解决方案。但是,在某些情况下,复杂中间结果的描述性命名会使代码更具可读性。