在IPython中,我键入以下程序
def foo():
...: return 2
...: print(foo())
我希望看到输出为'2'。我什么都没看到?我似乎不知道为什么吗?
IPython会在您的return
语句后再输入一个换行符,因此,在定义完之后,只需按Enter键即可foo
。foo
直到最后一级缩进,您才能定义。
您可能还会注意到,当添加换行符时,IPython立即print
在您刚刚定义的代码块中执行该函数。
In [1]: def foo():
...: return 2
...: print(foo())
...:
2
In [2]:
如果要避免副作用定义foo
函数,请在函数后添加新行return
以关闭函数定义,然后分别调用,print
如下所示:
In [1]: def foo():
...: return 2
...:
In [2]: print(foo())
2
In [3]:
即使您确实选择以现在编写的方式编写代码块,foo
也仍然可以按预期定义,因为对的调用print
不在的范围之内foo
。随后的任何呼叫foo
均应按预期进行。
In [1]: def foo():
...: return 2
...: print(foo())
...:
2
In [2]: foo??
Type: function
String Form:<function foo at 0x246cde8>
File: /home/siemenr/<ipython-input-1-f97d0fe9d8f9>
Definition: foo()
Source:
def foo():
return 2
In [3]: print(foo())
2
In [4]:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句