【问题标题】:Is it advisable to use print statements in a python function rather than return是否建议在 python 函数中使用 print 语句而不是 return
【发布时间】:2016-02-11 21:37:44
【问题描述】:

假设我有这个功能:

def function(a)
    c = a+b
    print(c)

是否建议在函数中使用 print 语句来显示输出,而不是在末尾放置 return 语句并使用print(function(a))

如果我在函数中同时使用 print 语句和 return 语句来显示相同​​的输出,会有什么影响?假设我需要显示c 的答案,然后在其他地方使用c 的值。这会违反任何编码约定吗?

所以问题的重点不在于printreturn 之间的区别,而是是否认为在同一函数中同时使用两者是一种很好的风格,以及它是否可能对程序产生影响。例如在:

 def function(a)
    c = a+b
    print(c)
    return c
 value = function
 print(value)

结果会是两个c 吗?假设c = 5;因此,输出会是(?):

5
5

【问题讨论】:

  • 那么,如果您想重用该函数并且想打印结果,而是想将结果用作新表达式的一部分,会发生什么?
  • 我的 0.02 美元,物有所值。我在具有深度嵌套函数调用的程序上工作了很多。将打印件放在可能的最高级别通常是好的,因为它们越深,打印的次数越多,而且通常输出变得很麻烦。然后你必须重新挖掘你的代码以找到所有的杂散打印。这导致了另一个提示:始终标记打印语句,而不仅仅是print (function(a)),而是print "my function result = ", function(a)。这也使得以后删除它们变得更加容易,因为您有一个要搜索的文字字符串。
  • 完全取决于您的用例。通常使用return,以防您要将函数的结果读入变量并在函数外使用。在您的示例中,c 的值在函数之外将不可用(对于任何类型的计算)。同时使用 print 和 return 也不合逻辑,因为它会干扰您对返回值的使用
  • @letsc 您最后的陈述不正确。您可以打印然后返回就好了。

标签: python function python-3.x printing return


【解决方案1】:

printreturn 解决了两个完全不同的问题。它们似乎在交互式运行简单示例时做同样的事情,但它们完全不同。

如果您确实只想打印结果,请使用print。如果您需要进一步计算结果,请使用return。两者都使用相对较少,除非在调试阶段,如果您不使用调试器,打印语句可以帮助您查看发生了什么。

根据经验,我认为最好避免在函数中添加print 语句,除非函数的明确目的是打印一些内容。

在所有其他情况下,函数应该返回一个值。调用该函数的函数(或人)然后可以决定打印它,将其写入文件,将其传递给另一个函数,等等。

所以问题的重点不是打印和打印之间的区别 而是如果认为两者都使用的好风格 相同的功能及其对程序的可能影响。

这不是好风格,也不是坏风格。除了您最终打印了很多可能不需要打印的东西之外,对程序没有重大影响。

如果您需要该函数既打印又返回值,这是完全可以接受的。一般来说,这种事情在编程中很少发生。它回到了函数被设计做什么的概念。如果它是为打印而设计的,那么返回一个值通常是没有意义的,如果它是为返回一个值而设计的,那么打印通常是没有意义的,因为调用者可以根据需要打印它。

【讨论】:

    【解决方案2】:

    returnprint 完全是两个不同的进程。

    print 将向用户或通过控制台显示信息; return 用于从满足特定目的的方法中收集数据(稍后在整个程序中使用)。

    为了回答你的问题,我相信它会返回这两个值;因为一个打印 c 变量本身,而另一个返回c 也呈现?如果我错了,请纠正我。

    【讨论】:

    • return 不是函数。
    • 我的意思是它是一个“过程”,与print相比,它的功能有所不同。
    猜你喜欢
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 2014-09-04
    • 2022-08-21
    • 2014-02-16
    • 1970-01-01
    • 2021-07-26
    • 2019-05-28
    相关资源
    最近更新 更多