为什么在Python 3.6中`item["error"]: "message"`不是语法错误?

3
我今晚在我的代码中发现了一个bug,其中我写了以下内容:
item["error"]: "message"

改成:

item["error"] = "message"

我想知道的是,为什么原始代码行没有造成语法错误。这是怎么回事?这不是在字典声明中,而是一行普通的独立代码。

1个回答

3

您意外地使用值"message"item["error"]进行了注释。(实际上,处理注释的代码默认情况下不会做任何事情。)变量注释是Python 3.6中的新功能。


我之前不知道PEP526,但我认为使用如此相似的语法是一个糟糕的决定。 - boatcoder
我在这行代码上尝试了 pylint。希望能得到某种 pointless-statement 警告,但是没有,pylint 没有发现任何问题。嗯,它确实不是无意义的语句,因为它创建了新的注释。但是没有错误和警告,这是一个“坑”。 - VPfB
我现在考虑了一下,觉得使用@作为注解操作符会更合理。例如:item["error"] @ "message"。这与@property和Java注解类似。而且从视觉上来说,@=之间的距离要比:大得多。尤其是考虑到:在构建字典时扮演了=的角色。 - boatcoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接