如果我输入/在iPython中,为什么我会得到空元组?

Edg*_*rks 5 ipython

打开iPython并输入:

/
Run Code Online (Sandbox Code Playgroud)

点击进入并想知道结果:

()
Run Code Online (Sandbox Code Playgroud)

你无法分配它,我猜它与shell功能有关.

编辑:

您可以指定它:

 p = Out[xx]
Run Code Online (Sandbox Code Playgroud)

但不是直接:

 p = / 
Run Code Online (Sandbox Code Playgroud)

会给:

SyntaxError
Run Code Online (Sandbox Code Playgroud)

这确实是一个空元组.

Mic*_*kis 7

它是可调用对象/名称的便利功能.它不是一个空元组,而是括号完成.来自iPython的帮助系统(?):

  • 自动括号和自动引号(改编自Nathan Gray的LazyPython)

    1. 自动括号

      可调用对象(即函数,方法等)可以像这样调用(注意参数之间的逗号)::

      在[1]中:callable_ob arg1,arg2,arg3

      输入将被翻译为::

      callable_ob(arg1,arg2,arg3)

      默认情况下此功能处于关闭状态(在极少数情况下会产生不良副作用),但您可以通过启动IPython,在命令行中激活它,--autocall 1在配置文件中永久设置它,或在运行时启用它%autocall 1.

      您可以使用'/'作为行的第一个字符来强制使用自动括号.例如::

      在[1]中:/ globals#成为'globals()'

  • 它不是那么模糊; 它在[文献]中提到(http://ipython.org/ipython-doc/2/interactive/reference.html#automatic-parentheses-and-quotes) (2认同)