Weird behaviour with semicolon before function call in ipython/ipython notebook

后端 未结 1 1594
没有蜡笔的小新
没有蜡笔的小新 2021-01-18 18:21

I stumbled upon some strange behaviour using ipython-notebook and wondered what, if any, the purpose was. If you enter a semicolon before a function call, you g

1条回答
  •  生来不讨喜
    2021-01-18 19:07

    It's a command for automatic quoting of function args: http://ipython.readthedocs.org/en/latest/interactive/reference.html#automatic-parentheses-and-quotes

    From the docs:

    You can force automatic quoting of a function’s arguments by using , or ; as the first character of a line. For example:

    In [1]: ,my_function /home/me  # becomes my_function("/home/me")
    

    If you use ‘;’ the whole argument is quoted as a single string, while ‘,’ splits on whitespace:

    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")
    

    Note that the ‘,’ or ‘;’ MUST be the first character on the line! This won’t work:

    In [4]: x = ,my_function /home/me # syntax error
    

    In your case it's quoting all characters including ' and ( and )

    You get similar output here but without the single quotes:

    In [279]:
    ;list(ab)
    
    Out[279]:
    ['(', 'a', 'b', ')']
    

    0 讨论(0)
提交回复
热议问题