【问题标题】:Pragmas in pythonpython中的编译指示
【发布时间】:2012-08-16 17:27:06
【问题描述】:

我正在阅读 bottle.py 源代码。它是一个 Web 框架,只有 3000 多行 Python 代码。太酷了。

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

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 语法的介绍。

【问题讨论】:

  • 我相信这是 pycoverage 告诉它跳过该方法的评论
  • # pragma 绝对不是直接在 Python 中工作的东西。对于 Python,它只是一个注释。没有什么类似于说 C 预处理器。

标签: python pragma


【解决方案1】:

显然与coverage.py有关:

Coverage.py 是一个测量 Python 程序代码覆盖率的工具。它会监视您的程序,注意代码的哪些部分已被执行,然后分析源代码以识别可能已执行但未执行的代码。

确切的# pragma: no cover 暗示该工具应忽略该部分代码——请参阅Excluding code from coverage

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 2011-03-03
      • 2018-04-03
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多