gpt4 book ai didi

python - 对 Python doctests 的多版本支持

转载 作者:太空狗 更新时间:2023-10-29 18:26:42 24 4
gpt4 key购买 nike

我正在这样写我的 doctests:

>>> some_function(a=1, b=2)
{u'id': u'123', u'name': u'abc'}

这对 Python 版本 2.5、2.6 和 2.7 工作正常,但对 Python 3 失败并出现以下错误:

Expected:
{u'id': u'123', u'name': u'abc'}
Got:
{'id': '123', 'name': 'abc'}

问题是如果我这样写我的文档测试:

>>> some_function(a=1, b=2)
{'id': '123', 'name': 'abc'}

它们仅适用于 Python3,在 Python2 版本上失败。我的问题是如何使其跨版本兼容?

最佳答案

我在 IPython 中遇到了与 doctests 相同的问题。没有完美的解决方案,但我将所有 u' 前缀包装在 {} 中,即 {u}',并实现了一个小功能这将酌情包括或排除它们。

可以看到the u_format() functiona doctest using it .

但这相当困惑,所以我将许多测试从 doctests 中移走了。

或者,您可以这样测试它:

>>> some_function(a=1, b=2) == {'id': '123', 'name': 'abc'}
True

如果您需要在键中使用一些 unicode 字符串,您可以使用 u'abþ',并使用 distribute 在 doctests 上运行 2to3。但这仅适用于输入代码,不适用于输出代表。

关于python - 对 Python doctests 的多版本支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13473971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com