在Python中,@UndefinedVariable代表什么?

4
我在这个脚本中看到了# @UndefinedVariable标记。这个注释在执行过程中有任何意义吗?

不,这对于Python没有任何意义。 - Martijn Pieters
2
为什么会有这么多踩?这是一个明确的问题,尽管它可能显而易见,但对于初学者来说,这肯定是一个合理的问题。 - Chris_Rands
2个回答

4
不,这段文本对Python没有任何意义。它是一个注释,而注释永远不会到达运行时。
目前,Python语言只为一种注释类型源编码声明分配含义。注释只对记号生成器有意义。它也不会被保留,在运行时不可用,只影响记号生成器在解析和编译为字节码之前读取源代码的方式。
文本包含一个@与Python装饰器语法无关;它可能是完全不同的东西。例如,有几个文档系统使用@来表示文本的特殊含义;javadoc就是一个典型的例子。该文本可能对解析源代码以满足其自身需求的外部工具有意义。

那个“外部工具”显然是PyDev http://www.pydev.org/manual_adv_assistants.html - Chris_Rands
“@”符号在注释开头让我感到困惑。谢谢解释! - dada

3

这些注释很可能是由PyDev编辑器添加的。它非常特定于该编辑器,不是Python语言的一部分。它基本上是一个注释,告诉PyDev的代码助手不要抱怨那一行。

还有其他工具,例如pyflakes,寻找特定内容的注释。

这主要是由分析代码的工具使用。


当我在谷歌上搜索@UndefinedVariable时,我发现很多页面都提到了PyDev。 - dada
@dada 的确。你可能也会看到很多 # flake8: noqa# noqa。这些是注释,告诉 pyflakes 库在测试 pep8 合规性时忽略代码的某些部分:https://www.python.org/dev/peps/pep-0008/ - Grimmy

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