我已经使用 Python 一段时间了,我使用的 IDE 没有任何问题(我使用过 WingIDE,现在我使用 Spyder)。
但是当我开始测试我在编辑器上键入的一些代码时,今天,return 语句似乎不起作用。然后我写了更基本的测试来查看 return 做了什么,并发现其他函数也不能正常工作。
例如对于函数,
def test():
return 2
'''the code below is written in the editor'''
test()
print(type(test()))
print(test())
在编辑器上运行代码之后。
test()
返回“nothing”(但它实际上不是“nothing/None/blank space”)
type(test())
返回“nothing”(但它实际上不是“nothing/None/blank space”)
print(type(test())
打印 'class 'int' '
print(test())
打印 2
但是当我在控制台上键入 test()
时,它返回 2
,而当我在控制台上键入 type(test())
时控制台,它返回 class: int
。
请注意,在我更新 Spyder 前后会出现相同的结果。以前,编辑器中的代码与控制台中的代码运行方式相同,因为在编辑器中键入 test()
会在我在编辑器中运行代码时返回 2。
Python/Spyder 以前从未做过如此奇怪的事情,发生了什么事?
这是一个可视化。编辑器中的代码
在控制台显示的编辑器中运行代码后的结果
最佳答案
假设第 116-118 行缺少的输出让您感到不安:
编辑器将您的代码作为普通 python 脚本处理,这意味着 test()
语句不会打印其结果。
立即显示结果是 python 控制台的一个特殊功能,而不是正常的 python 行为。
要实际打印结果,您必须调用 print(test())
,就像您在第 119-120 行所做的那样
更新:在 PyCharm 中进行一些测试后 我得到以下行为:
复制粘贴到 python 控制台:
def test():
return 2
test()
>>press enter
确实会导致空白输出,但是:
def test():
return 2
>>press enter
test()
>>press enter
按预期打印 2
。所以我的结论是 Spyder 可能没有显示返回值,因为它正在执行多指令脚本而不是单个操作。
关于python - Python 上的 Return 语句似乎不起作用(在 Spyder 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43452939/