Python中的编译指示符

94

我正在阅读bottle.py源代码。它是一个仅有3000多行Python代码的Web框架,非常酷。

我发现一些像这样的代码:

class ServerAdapter(object):
    quiet = False
    def __init__(self, host='127.0.0.1', port=8080, **config):
        self.options = config
        self.host = host
        self.port = int(port)

    def run(self, handler): # pragma: no cover
        pass
    ... 

# pragma: no cover 是什么意思?我在Python文档中找不到有关 pragma 语法的介绍。


15
我认为这是一条针对pycoverage的注释,告诉它跳过那个方法。 - Joran Beasley
5
# pragma 在 Python 中并没有直接的作用,它仅仅是一个注释。Python 没有类似 C 预处理器的功能。请注意,我已经尽量使译文通俗易懂,并保留了原文的含义,不包括任何解释或其他额外信息。 - pepr
2个回答

128
这显然与coverage.py有关:

Coverage.py是一个用于测量Python程序代码覆盖率的工具。它监视您的程序,记录已执行的代码部分,然后分析源代码以确定可能已执行但未执行的代码。

这个确切的# pragma: no cover是提示工具应该忽略该代码部分的标记 - 请参阅从覆盖范围中排除代码


17

对于Python而言,它只是一个注释。它可能是针对某些读取和分析Python代码的外部工具的注解,例如doctest的#doctest:+ELLIPSIS 注释或PyLint的# pylint: disable=W0613风格注释。


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