Python 当您使用=符号时,运算符会做什么?

Python 当您使用=符号时,运算符会做什么?,python,python-3.x,ipython,Python,Python 3.x,Ipython,我完全是随机发现的,只是好奇,因为这甚至不像一个列表 只需在IPython中使用?即可查看IPython功能的介绍和概述。 自动报价 您可以使用“,”作为参数强制自动引用函数的参数 行的第一个字符。例如: In [1]: ,my_function /home/me # becomes my_function("/home/me") 如果你用“;”相反,整个论点被引用为一个单一的论点 字符串(while“,”在空白处拆分):: 请注意,“,”必须是行中的第一个字符!这 不起作用::

我完全是随机发现的,只是好奇,因为这甚至不像一个列表


只需在IPython中使用
即可查看IPython功能的介绍和概述。

  • 自动报价

    您可以使用“,”作为参数强制自动引用函数的参数 行的第一个字符。例如:

      In [1]: ,my_function /home/me   # becomes my_function("/home/me")
    
    如果你用“;”相反,整个论点被引用为一个单一的论点 字符串(while“,”在空白处拆分)::

    请注意,“,”必须是行中的第一个字符!这 不起作用::

      In [4]: x = ,my_function /home/me    # syntax error
    
  • 编辑:对不起
    =
    的解释。正如@randomir所说,
    =
    op讨论的是。

    这就是IPython中实现自动报价功能的方式。特别是,在IPython终端输入的每一行都与以下模式匹配:

    在输入<代码>'的情况下,=此',这将导致:

    由于
    esc
    是一个逗号,因此达到以下
    if-else
    语句:

        if esc == ESC_QUOTE:
            # Auto-quote splitting on whitespace
            newcmd = '%s("%s")' % (ifun,'", "'.join(the_rest.split()) )
    
    将命令修改为

    In [19]: ifun=''
    
    In [20]: the_rest='= what iss this'
    
    In [21]: newcmd = '%s("%s")' % (ifun,'", "'.join(the_rest.split()) )
    
    In [22]: newcmd
    Out[22]: '("=", "what", "iss", "this")'
    
    所以总而言之,

    • 初始逗号触发IPython的自动引用功能
    • 由于未找到有效的函数名,
      ifun
      是一个空字符串
    • 自动引用引用命令字符串和表单的其余部分

      '%s("%s")' % (ifun,'", "'.join(the_rest.split()) )
      
      作为新的命令。然后对该“命令”进行评估


    因此,返回的结果是元组
    (“=”、“what”、“iss”、“this”)

    以后,请将所有代码作为文本发布。从长远来看,图像没有帮助。请看@Car你在使用IPython吗?我认为这是一个
    IPython
    魔术。但它不是我使用的东西,所以我必须查找它。这似乎是一个与自动调用相关的函数,省略了该函数。请参阅
    %quickref
    。问题中没有用于校准的函数。这根本无法解释
    =
    的行为。请参阅问题注释中发布的打开的IPython。尽管它是自动引用行为的一部分。它试图将第一个元素与可调用的元素匹配。很容易获得
    不可调用
    未定义
    错误。像
    =
    +
    /
    这样的符号/运算符落在裂缝之间。
        if esc == ESC_QUOTE:
            # Auto-quote splitting on whitespace
            newcmd = '%s("%s")' % (ifun,'", "'.join(the_rest.split()) )
    
    In [19]: ifun=''
    
    In [20]: the_rest='= what iss this'
    
    In [21]: newcmd = '%s("%s")' % (ifun,'", "'.join(the_rest.split()) )
    
    In [22]: newcmd
    Out[22]: '("=", "what", "iss", "this")'
    
    '%s("%s")' % (ifun,'", "'.join(the_rest.split()) )