在中,执行dir()会打印一个名称列表。但是在脚本中,dir()不直接提供任何输出,我必须使用print(dir())。
不仅仅是dir(),其他内置函数的行为方式也是一样的。
shell是否以某种特殊的方式执行这些函数?它是否隐式地将这些函数包装在其他函数中?
发布于 2018-06-25 18:05:58
发布于 2018-06-25 18:10:33
这个问题完全不是针对dir内置的。
在Python中运行代码时,不属于NoneType的每个语句的结果都会被回显回shell,即打印出来。例如,请参见以下内容。
>>> 2 + 3
5
>>> 2 + 3; 2 + 6
5
8在执行类似print(2 + 3)的操作时,您将使用内置的内容向终端(或输出流所在的地方)显示2 + 3的结果,然后print返回一个None值,该值不会被打印出来。您可以通过手动打印出任何print返回的内容来覆盖此操作。
>>> print(2 + 3)
5
>>> print(print(2 + 3))
5
None这对于任何语句都是一样的。
现在,当您直接执行一个文件(而不是通过REPL )时,它绕过了将每个语句的输出输送到标准输出的步骤。因此,在文件中执行dir (或任何其他函数)不会输出其结果,除非您通过print或其他方式显式地告诉它。
https://stackoverflow.com/questions/51029414
复制相似问题