2017-07-18 52 views
1

我碰到this脚本中的# @UndefinedVariable标签。此评论在执行过程中是否有任何意义?@UndefinedVariable在Python中代表什么?

+0

不,它对Python *没有意义。 –

+2

为什么所有的downvotes?一个明确的问题,虽然看起来很明显,但对于初学者来说,肯定是一个合理的问题 –

回答

3

不,该文本对Python没有意义。它在评论中,并且评论永远不会到达运行时

目前,Python 语言为一种注释类型source encoding declaration赋予了含义。评论仅对分词器有意义。它也不会被保留,并且在运行时不可用,它只会影响标记器在解析和编译为字节码之前如何读取源代码。

文本包含@既不在这里,也不在那里,它与Python装饰器语法无关;它可能是完全不同的东西。例如,有几个文档系统使用@来表示文本的特殊含义; javadoc就是一个很好的例子。文本可能是对于解析源代码以满足自己需要的外部工具具有意义。

+0

这个'外部工具'显然是PyDev http://www.pydev.org/manual_adv_assistants.html –

+0

开头的'@'的评论让我困惑。感谢您的解释! – dada

3

这些注释很可能是由PyDev编辑器添加的。这是非常具体的编辑器,不是python语言的一部分。它基本上是一个评论,它告诉PyDev的代码助手不要抱怨这一行。

还有其他的工具,如pyflakes,寻找特定内容的评论。

这主要用于分析代码的工具。

+0

当我使用@UndefinedVariable时,我发现很多PyDev被提及的页面。 – dada

+0

@dada确实。您可能还会在周围看到很多'#flake8:noqa'和'#noqa'。这是评论告诉pyflakes库在测试pep8合规性时忽略部分代码:https://www.python.org/dev/peps/pep-0008/ – Grimmy