假设我有这个函数funct
,它接受一个参数并返回它。
def funct(arg):
return arg
如果打印funct
,则应输出None
。
print funct(None)
如果我只是运行funct
,它就不会打印任何内容。
funct(None)
现在假设我希望以任何一种方式输出arg
,使用上述两种方法之一,我该怎么做?我已经尝试了这个,但它有它自己的问题。
def funct(arg):
print arg
return arg
如何使函数以任何方式打印arg
?
答案 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)
你必须意识到"功能内部的区别" "在功能之外"。当您进入该功能时,您可以决定打印该值。但是你不能控制那些在功能之外发生的事情。
同样,当您将值返回给函数的调用者时,您也可以决定将其打印出来。如果要打印一次,只需返回值并打印函数的返回值。这样,您可以正常使用该功能,如果需要,您可以打印返回值。这将最多打印一次值。
这是怎么回事。