我在使用 Jupyter Notebook 时偶然发现了一些奇怪的行为,并想知道其目的是什么(如果有的话)。如果在函数调用之前输入分号,则会得到将该函数应用于字符串的结果,该字符串反映了函数名称后面的所有代码。例如,如果我这样做;list('ab')
我得到的结果是list("('ab')")
:
In [138]: ;list('ab')
Out[138]:
['(', "'", 'a', 'b', "'", ')']
我将 Jupyter 与 IPython 4 一起使用。它发生在 IPython 以及 Jupyter Notebook 中。
这是故意的吗?如果是的话,为什么?
这是一个自动引用函数参数的命令:自动括号和引号
从文档中:
您可以通过使用强制自动引用函数的参数,
或者 ;作为一行的第一个字符。例如:
In [1]: ,my_function /home/me # becomes my_function("/home/me")
如果使用“;”,整个参数将被引用为单个字符串,而
‘,’ 按空格分割:
In [2]: ,my_function a b c # becomes my_function("a","b","c")
In [3]: ;my_function a b c # becomes my_function("a b c")
请注意,“,”或“;”必须是该行的第一个字符!这
不起作用:
In [4]: x = ,my_function /home/me # syntax error
在你的情况下,它引用所有字符,包括'
and (
and )
.
您在这里得到类似的输出,但没有单引号:
In [279]:
;list(ab)
Out[279]:
['(', 'a', 'b', ')']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)