在IPython中我输入以下程序
def foo():
...: return 2
...: print(foo())
我希望看到输出'2'。我没有看到任何类似的东西?我似乎无法弄清楚为什么?
答案 0 :(得分:3)
IPython希望在您的return
声明之后再换一个换行符,所以只需在定义foo
后点按回车键即可。在您关闭最后一个缩进级别之前,它不会让您定义foo
。
您可能还会注意到,当您添加换行符时,IPython会立即执行您刚刚定义的代码块中的print
函数。
In [1]: def foo():
...: return 2
...: print(foo())
...:
2
In [2]:
如果您想避免副作用定义foo
功能,请在return
之后添加换行符以关闭函数定义,然后单独调用print
,如下所示:< / p>
In [1]: def foo():
...: return 2
...:
In [2]: print(foo())
2
In [3]:
即使您选择以您现在编写的方式编写代码块,foo
仍将按预期定义,因为您对print
的调用超出了{{foo
的范围1}}。对[{1}}的任何后续调用都应按预期工作。
foo