【发布时间】:2017-07-18 09:14:45
【问题描述】:
我在this 脚本中遇到了# @UndefinedVariable 标记。这个注释在执行过程中是否有任何意义?
【问题讨论】:
-
不,对Python没有意义。
-
为什么所有的反对票?一个明确的问题,虽然看起来很明显,但对于新手来说肯定是一个合理的问题
标签: python comments python-decorators
我在this 脚本中遇到了# @UndefinedVariable 标记。这个注释在执行过程中是否有任何意义?
【问题讨论】:
标签: python comments python-decorators
不,该文本对 Python 没有意义。它在注释中,cmets 永远不会到达运行时。
目前,Python 语言 将含义分配给一种注释类型,source encoding declaration。该评论仅对标记器有意义。它也不会保留,并且在运行时不可用,它只会影响标记器在解析和编译成字节码之前如何读取源代码。
文本中包含@ 既不存在也不存在,它与 Python 装饰器语法无关;这可能是完全不同的东西。例如,有几个文档系统使用@ 来表示文本的特殊含义; javadoc 就是一个很好的例子。 probably 文本对于根据自己的需要解析源代码的外部工具有意义。
【讨论】:
那些 cmets 很可能是由 PyDev 编辑器添加到那里的。它非常特定于该编辑器,并且不是 python 语言的一部分。它基本上是一条注释,告诉 PyDev 的代码助手不要抱怨该行。
还有其他工具,例如 pyflakes,可以查找具有特定内容的 cmets。
这主要由分析代码的工具使用。
【讨论】:
# flake8: noqa 和# noqa。这是 cmets 告诉 pyflakes 库在测试 pep8 合规性时忽略部分代码:python.org/dev/peps/pep-0008