您的位置 首页 Python

如何在docutils中使用null

我正在尝试在一个使用null的函数上运行doctest.但是doctest似乎并不喜欢nulls ……

def do_something_with_hex(c):
    """
    >>> do_something_with_hex('\x00')
    '\x00'
    """
return repr(c)

import doctest
doctest.testmod()

我看到了这些错误

Failed example:
    do_something_with_hex(' ')
Exception raised:
    Traceback (most recent call last):
      File "C:\Python27\lib\doctest.py",line 1254,in __run
        compileflags,1) in test.globs
    TypeError: compile() expected string without null bytes
**********************************************************************

在这样的测试用例中,我该怎么做才能允许空值?

解决方法

您可以转义所有反斜杠,或者将文档字符串更改为
raw string literal:

def do_something_with_hex(c):
    r"""
    >>> do_something_with_hex('\x00')
    '\x00'
    """
    return repr(c)

使用字符串上的r前缀,字符串中包含反斜杠后面的字符不会发生更改,并且所有反斜杠都保留在字符串中.

关于作者: dawei

【声明】:金华站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

热门文章