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