从它返回的打印对象中禁用Python return语句

7 python

我想禁止"返回"打印它返回到python shell的任何对象.

例如,一个示例python脚本test.py看起来像:

def func1():
    list = [1,2,3,4,5]
    print list
    return list
Run Code Online (Sandbox Code Playgroud)

现在,如果我这样做:

python -i test.py
>>>func1()
Run Code Online (Sandbox Code Playgroud)

这总是给我在python shell上的两个打印.我只想打印并获得返回的对象.

Jue*_*gen 12

打印的原因不是return语句,而是shell本身.shell会打印在命令行上执行操作的任何对象.

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

>>> a = 'hallo'
>>> a
'hallo'
Run Code Online (Sandbox Code Playgroud)

最后一个语句的结果是a的值(因为它没有分配给其他任何东西).所以它是由shell打印的.

问题不是"返回"而是shell本身.但这不是问题,因为工作代码规范不会在交互式shell中执行(因此,不会打印任何内容).因此,没问题.


Eli*_*ght 10

没有办法配置Python shell压缩打印函数调用的返回值.但是,如果将返回的值分配给变量,则不会打印它.例如,如果你说

rv = func1()
Run Code Online (Sandbox Code Playgroud)

代替

func1()
Run Code Online (Sandbox Code Playgroud)

然后什么都不打印.


Sea*_*agh 5

通常,从函数内打印,然后返回值,不是一个好主意.

实际上,在函数内打印通常是错误的.大多数情况下,函数会在程序中多次调用.有时您想要打印该值,通常您只想将该数据用于某些内容.

让函数返回它的值.如果这是正确的事情,让调用该函数的代码将其打印出来.