为什么`item [“error”]:“message”`不是Python 3.6中的语法错误?
问题描述:
我发现我在那里写代码,今晚我的错误:的为什么`item [“error”]:“message”`不是Python 3.6中的语法错误?
item["error"]: "message"
代替:
item["error"] = "message"
我想不通的是,为什么原线路未造成语法错误。那里发生了什么?这不在一个字典的声明;这只是一个常规的独立代码行。
我不知道PEP526,我认为使用这种类似的语法是一个可怕的决定。 – boatcoder
我在这样的代码行上试过'pylint'。希望得到某种'毫无意义的陈述'警告,但不,'pylint'没有看到任何问题。嗯,这确实不是毫无意义的说法,因为它创造了新的诠释。但没有错误和没有警告,这是一个“陷阱”。 – VPfB
我现在已经想到了这一点,并认为使用'@'作为注释运算符会更有意义。 'item [“error”] @“message'。这与'@ property'和java annotations类似。它与'='在视觉上有很大的距离,':'不是。特别是':'假定在'dict'的构造中'='的作用。 – boatcoder