是否可以在python函数中使用print语句而不是返回

uhe*_*xos 2 python printing return function python-3.x

让我们说我有这个功能:

def function(a)
    c = a+b
    print(c)
Run Code Online (Sandbox Code Playgroud)

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

如果我在函数中同时使用print语句和return语句来显示相同​​的输出,那会有什么影响呢?让我们想象一下,我需要显示答案c,然后使用c其他地方的值.这会破坏任何编码约定吗?

所以问题的重点不在于print和之间的区别return,而是在同一个函数中使用它们以及它是否对程序产生可能的影响时,它被认为是一种好的风格.例如:

 def function(a)
    c = a+b
    print(c)
    return c
 value = function
 print(value)
Run Code Online (Sandbox Code Playgroud)

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

5
5
Run Code Online (Sandbox Code Playgroud)

Bry*_*ley 6

printreturn解决两个完全不同的问题.当以交互方式运行琐碎的例子时,它们似乎做同样的事情,但它们完全不同.

如果您确实只想打印结果,请使用print.如果您需要进一步计算结果,请使用return.除了在调试阶段,如果不使用调试器,print语句有助于查看正在发生的情况,那么使用两者的情况相对较少.

根据经验,我认为避免print在函数中添加语句是好的,除非函数的明确目的是打印出来.

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

因此问题的重点不在于打印和返回之间的区别,而是在同一功能中使用它们以及它对程序可能产生的影响时,它被认为是好的风格.

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

如果您需要打印和返回值的功能,这是完全可以接受的.一般来说,这种事情很少在编程中完成.它可以追溯到功能设计的概念.如果它是为打印而设计的,那么返回一个值通常没有意义,如果它被设计为返回一个值,那么打印通常没有意义,因为调用者可以根据需要打印它.