Python 缩写几个功能-指南?

Python 缩写几个功能-指南?,python,function,Python,Function,这可能是一个非常愚蠢的问题,但我还是要问 有两种方式显示此代码: file = "picture.jpg" pic = makePicture(file) show(pic) 或 这只是一个如何缩写的示例,我已经在其他函数中看到了它。但是当我需要做的时候,它总是让我困惑。当组合这样的函数时,有什么经验法则吗?在我看来,您可以在运行过程中向后选择函数,并以文件或选择该文件的函数结束(即pickAFile())。这听起来对吗 请保持解释足够简单,让聪明的狗能理解 写作时: pic = makePi

这可能是一个非常愚蠢的问题,但我还是要问

有两种方式显示此代码:

file = "picture.jpg"
pic = makePicture(file)
show(pic)

这只是一个如何缩写的示例,我已经在其他函数中看到了它。但是当我需要做的时候,它总是让我困惑。当组合这样的函数时,有什么经验法则吗?在我看来,您可以在运行过程中向后选择函数,并以文件或选择该文件的函数结束(即
pickAFile()
)。这听起来对吗

请保持解释足够简单,让聪明的狗能理解

写作时:

pic = makePicture(file)
使用
file
作为参数调用
makePicture
,并将该函数的输出放入变量
pic
。如果使用
pic
所做的只是将其用作
show
的参数,那么实际上根本不需要使用
pic
。这只是一个临时变量。您的第二个示例就是这样做的,并将
makePicture(file)
的输出作为第一个参数直接传递给
show
,而不使用像
pic
这样的临时变量

现在,如果你在其他地方使用
pic
,你真的没有办法绕过它。如果不重用临时变量,请选择您喜欢的任何方式。只要确保它是可读的。

当你写:

pic = makePicture(file)
使用
file
作为参数调用
makePicture
,并将该函数的输出放入变量
pic
。如果使用
pic
所做的只是将其用作
show
的参数,那么实际上根本不需要使用
pic
。这只是一个临时变量。您的第二个示例就是这样做的,并将
makePicture(file)
的输出作为第一个参数直接传递给
show
,而不使用像
pic
这样的临时变量


现在,如果你在其他地方使用
pic
,你真的没有办法绕过它。如果不重用临时变量,请选择您喜欢的任何方式。只要确保它是可读的。

这一切都由程序员自行决定,如果您计划制作一个更大的程序,您可能希望将语句分开,以便您可以重新引用该文件


如果你与程序员团队一起工作,可读性总是很重要的,但是如果这只是你自己做的事情,那就做最舒服的事情。

这一切都由程序员决定,如果您计划制作一个更大的程序,那么您可能希望将语句分开,以便可以重新引用该文件


如果你和一个程序员团队一起工作,可读性总是很重要的,但如果这只是你自己做的事情,那就做最舒服的事情。

插嘴,因为我认为这种风格很重要。如果你不重用
“picture.jpg”
makePicture(…)
,我肯定会选择
show(makePicture(“picture.jpg”))
。原因是:

  • 这是非常清晰的
  • 这使得代码的读取速度更快(无需花费超过需要的时间)
  • 如果您使用变量,则向阅读代码的人(包括您在内,在一段时间后)发送一个信号,即变量在代码中的某个位置被重用,最好将其放入工作(短期)内存中。(在20世纪60年代,实验表明一个人一次能记住大约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"
)

插嘴,因为我认为那种风格很重要。如果你不重用
“picture.jpg”
makePicture(…)
,我肯定会选择
show(makePicture(“picture.jpg”))
。原因是:

  • 这是非常清晰的
  • 这使得代码的读取速度更快(无需花费超过需要的时间)
  • 如果您使用变量,则向阅读代码的人(包括您在内,在一段时间后)发送一个信号,即变量在代码中的某个位置被重用,最好将其放入工作(短期)内存中。(在20世纪60年代,实验表明一个人一次能记住大约7条信息,而一些现代实验得出的数字更低)。因此,如果变量未在任何地方重复使用,通常应将其删除,以免污染读者的短期记忆
我认为你的问题是非常正确的,你绝对不应该在这里使用中间变量,除非它们是必要的(因为它们被重用,或者因为它们有助于将复杂的表达式分解为直接可理解的部分)。这种做法将使你的代码