我偶然发现了一些奇怪的行为,ipython-notebook
并想知道目的是什么。如果在函数调用之前输入分号,则会得到将函数应用到反映函数名称后的所有代码的字符串的结果。例如,如果我;list('ab')
得到的结果是list("('ab')")
:
In [138]: ;list('ab') Out[138]: ['(', "'", 'a', 'b', "'", ')']
我使用的是jupyter
带ipython 4
。它发生在ipython
和中ipython notebook
。有没有人看过这个,或者有没有人知道它是否是预期的,如果是,为什么?
这是用于自动引用函数args的命令:http : //ipython.readthedocs.org/en/latest/interactive/reference.html#automatic-parentheses-and-quotes
从文档:
您可以使用或来强制自动引用函数的参数。作为一行的第一个字符。例如:
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
在你的情况下,它引用的所有字符,包括'
与(
和)
您在此处获得类似的输出,但没有单引号:
In [279]: ;list(ab) Out[279]: ['(', 'a', 'b', ')']