【发布时间】:2023-09-10 13:16:01
【问题描述】:
我正在为一个输出标记化单词列表的函数编写一个文档测试。
r'''
>>> s = "This is a tokenized sentence s\u00f3"
>>> tokenizer.tokenize(s0)
['This', 'is', 'a', 'tokenized', 'sentence', 'só']
'''
使用 Python3.4 我的测试顺利通过。
使用 Python2.7 我得到:
Expected:
['This', 'is', 'a', 'tokenized', 'sentence', 'só']
Got:
[u'This', u'is', u'a', u'tokenized', u'sentence', u's\xf3']
我的代码必须同时适用于 Python3.4 和 Python2.7。我该如何解决这个问题?
【问题讨论】:
-
测试
unicode名称并相应地调整您的测试(如果已定义)?由于这些脆弱性,从不喜欢 doctest。 -
你可以找到一个例子来做到这一点here
-
最简单的方法是把test改成
>>> tokenizer.tokenizer(s0) == [...]\nTrue
标签: python unicode portability doctest