Doctest由于Unicode导致失败

Doctest由于Unicode导致失败,第1张

Doctest由于Unicode导致失败

Python 3对Unipre对象使用不同的字符串文字。没有

u
前缀(在规范表示中),并且一些非字母字符按字面显示,例如,
'só'
在Python
3中是Unipre字符串(如果在输出中看到它,则在Python 2中是字节字符串)。

如果您只想知道函数是如何将输入文本拆分为标记的;您可以在单独的行上打印每个令牌,以使结果与Python 2/3兼容:

print("n".join(tokenizer.tokenize(s0)))Thisisatokenizedsentencesó

或者,您可以自定义

doctest.OutputChecker
,例如:

#!/usr/bin/env pythonr""">>> u"This is a tokenized sentence su00f3".split()[u'This', u'is', u'a', u'tokenized', u'sentence', u'sxf3']"""import doctestimport reimport sysclass Py23DocChecker(doctest.OutputChecker):    def check_output(self, want, got, optionflags):        if sys.version_info[0] > 2: want = re.sub("u'(.*?)'", "''", want) want = re.sub('u"(.*?)"', '""', want)        return doctest.OutputChecker.check_output(self, want, got, optionflags)if __name__ == "__main__":    import unittest    suite = doctest.DocTestSuite(sys.modules['__main__'], checker=Py23DocChecker())    sys.exit(len(unittest.TextTestRunner().run(suite).failures))


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5674816.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存