在pyhon3.10中,我可以运行此代码片段而不会引发任何错误:
{}[0]:1
它创建一个空字典,然后访问0键.然而,我认为下面的:1
是无效的语法.事实上,如果我试图确定结果的类型:
type({}[0]:1)
出现语法错误.每当我try 处理结果(例如print({}[0]:1)
)时,都会出现类似的行为.
为什么会发生这种情况?我假设解释器识别出该表达没有被分配并且不会编译它.因此您可以在存在{}[0]:1
行的情况下运行您的代码.然而,这与不同语法无效代码引发的其他语法错误(例如引发错误的1:1
)不一致.