功能:返回和/或打印

时间:2014-08-28 23:35:38

标签: python function arguments return

假设我有这个函数funct,它接受​​一个参数并返回它。

def funct(arg):
    return arg

如果打印funct,则应输出None

print funct(None)

如果我只是运行funct,它就不会打印任何内容。

funct(None)

现在假设我希望以任何一种方式输出arg,使用上述两种方法之一,我该怎么做?我已经尝试了这个,但它有它自己的问题。

def funct(arg):
    print arg
    return arg

如何使函数以任何方式打印arg

2 个答案:

答案 0 :(得分:3)

我能想到的唯一部分解决方案是添加一个关键字参数,指定是否print

def funct(arg, do_print=True):
    if do_print:
        print(arg)
    return arg

然后这两个只打印arg一次:

print funct(None, do_print=False)
funct(None)

否则,我不认为这是可能的。 funct无法知道调用者是否会print返回的值。

答案 1 :(得分:0)

你必须意识到"功能内部的区别" "在功能之外"。当您进入该功能时,您可以决定打印该值。但是你不能控制那些在功能之外发生的事情。

同样,当您将值返回给函数的调用者时,您也可以决定将其打印出来。如果要打印一次,只需返回值并打印函数的返回值。这样,您可以正常使用该功能,如果需要,您可以打印返回值。这将最多打印一次值。

这是怎么回事。