使用kwarg风格的dict初始化时:
In [3]: dict(a=1, b=2, c=3)
Out[3]: {'a': 1, 'b': 2, 'c': 3}
由于某种原因,定义键'from'会引发语法错误:
In [4]: dict(to=0, from=1)
------------------------------------------------------------
File "<ipython console>", line 1
dict(to=0, from=1)
^
SyntaxError: invalid syntax
钥匙'来自'有什么特别之处?是否还有其他保留键用于kwarg风格的初始化?
我正在使用Python 2.6。
答案 0 :(得分:5)
答案 1 :(得分:3)
from
,与其他一些令牌一样,是Python中的关键字/保留字(from
专门用于将一些精心挑选的对象从模块导入当前命名空间)。您不能将它们用作标识符或任何东西(最终,kwargs是标识符)。它是根本不被允许的,即使在理论上它可以消除歧义,保持解析器简单和编写解析器的人理智;)
答案 2 :(得分:2)
from是一个关键字:
from threading import Thread
Python没有上下文相关的关键字:名称可以是关键字,也可以用作标识符。曾经有一个例外:“as”在导入语句中首次引入时曾经是特殊的,但后来被提升为“完整关键字”。
上下文相关关键字将是一个值得怀疑的功能。例如。应
print=3
工作或失败(它可能是语法上不正确的print语句,或者是对名为print的变量的赋值)。或者,怎么样
def print(x):
print x
print(3)
这应该定义一个功能打印吗?如果是这样,最后一行是电话吗?
答案 3 :(得分:1)
你不能在kwargs
中使用from
之类的python关键字