函数应该打印一个字符串还是返回它?

Neg*_*sro 4 python styles conventions

我正在编写一个Python脚本,它需要在控制台上打印一行.很简单,但我不记得(或决定)接受的做法是否在函数中打印,例如:

def exclaim(a):
    print (a + '!')
Run Code Online (Sandbox Code Playgroud)

或让它返回一个字符串,如:

def exclaim(a):
    return (a + '!')
Run Code Online (Sandbox Code Playgroud)

然后在主脚本中打印.我可以为任何一种方法争论.是否有普遍接受的方式来做到这一点还是取决于偏好?


编辑:澄清一下,这不是我正在使用的功能.我觉得在这里发布代码感觉不舒服,所以我把这些函数写成了一个过于简单的例子.

Mar*_*ers 5

通常,函数应生成并返回其输出,并让调用者决定如何处理它.

如果直接在函数中打印结果,则很难重用该函数来执行其他操作,并且很难进行测试,因为您必须拦截stdout而不是仅仅测试返回值.

然而,在这个简单的例子中,似乎没有必要重用或测试函数,甚至根本没有函数.