禁止Python return语句打印它返回的对象

2024-04-23 22:53:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我想禁止“return”打印任何返回到python shell的对象。

例如,python script test.py示例如下:

def func1():
    list = [1,2,3,4,5]
    print list
    return list

现在,如果我这样做:

python -i test.py
>>>func1()

这在python shell上总是给我两个指纹。 我只想打印并获取返回的对象。


Tags: 对象pytest示例returndefscriptshell
3条回答

无法配置Python shell禁止打印函数调用的返回值。但是,如果将返回值赋给变量,则不会打印该变量。例如,如果你说

rv = func1()

而不是

func1()

那就什么也印不出来了。

一般来说,从函数中打印,然后返回值,并不是一个好主意。

事实上,在函数中打印通常是错误的。大多数情况下,函数在程序中被调用多次。有时你想打印值,大多数时候你只是想用这些数据来做一些事情。

让函数返回它的值。如果正确的话,让调用函数的代码打印出来。

打印的原因不是返回语句,而是shell本身。shell确实会打印命令行上的操作所产生的任何对象。

这就是发生这种情况的原因:

>>> a = 'hallo'
>>> a
'hallo'

最后一个语句的值是as result(因为它没有分配给任何其他语句)。所以它是由外壳印刷的。

问题不在于“返回”,而在于外壳本身。但这不是问题,因为正常工作的代码不会在交互式shell中执行(因此,不会打印任何内容)。因此,没问题。

相关问题 更多 >