Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么分号不抑制doctest中的输出?_Python_Doctest - Fatal编程技术网

Python 为什么分号不抑制doctest中的输出?

Python 为什么分号不抑制doctest中的输出?,python,doctest,Python,Doctest,为什么分号不抑制doctest中的输出?解决办法是分配结果,但我很好奇为什么这不起作用 “”“ >>>1+1;#分号通常会抑制输出,但这会失败 >>>x=1+1#解决方法:将结果指定为抑制输出。 """ 失败示例: 1+1; 什么也不期望 得到了: 2. 你在想MATLAB或IPython之类的东西。Python分号通常不会抑制任何内容doctest模拟正常的交互式Python会话,而不是IPython会话,因此分号不起任何作用。与C/C++等其他语言不同,分号是Python中语句的可选终止符

为什么分号不抑制doctest中的输出?解决办法是分配结果,但我很好奇为什么这不起作用

“”“
>>>1+1;#分号通常会抑制输出,但这会失败
>>>x=1+1#解决方法:将结果指定为抑制输出。
"""
失败示例:
1+1;
什么也不期望
得到了:
2.

你在想MATLAB或IPython之类的东西。Python分号通常不会抑制任何内容
doctest
模拟正常的交互式Python会话,而不是IPython会话,因此分号不起任何作用。

与C/C++等其他语言不同,分号是Python中语句的可选终止符,如下面的Repl所示:

Python 3.6.5 |Anaconda custom (64-bit)| (default, Mar 29 2018, 13:32:41) [MSC v
1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 1 + 1;
2
>>> 1 + 1
2
但是,您可能会在例如IPython中观察到不同的行为:

In [120]: 1 + 1;

In [121]: 1 + 1
Out[121]: 2

IPython的建议是使用分号来抑制输出。但是,这种行为只针对IPython,并且不会以任何方式扩展到Python或其标准库(如doctest)。

我不知道为什么您会期望
1+1
的行为与
1+1不同
在Python中,分号仅用于在一行上分隔多个语句,因为显然我已经过多地使用了IPython Wayy!